目录
连接错误时的提示mysqli_connect_errno();
PHP操作Mysql数据库连接
连接mysql服务器
- mysqli_connect()函数实现与MYSQL连接
connID=@mysqli_connect($host,$username,$password)
住:@用来屏蔽数据库连接失败而显示的不友好的错误
<?php
$host="127.0.0.1";
$username="pipasound";
$password="123";
if($connID=@mysqli_connect($host,$username,$password)){
echo "<script type='text/javascripe'>alert('数据库连接成功');</script>";
}else{
echo"<script type='text/javascripe'>alert('数据库连接失败');</script>";
}
?>
选择mysql数据库
mysql_select_db(mysqli link,string dbname)
- link为必选参数,应用mysqli_connect()函数成功建立MYSQL服务器后返回的连接标识
- dbname必选参数,用户指定要选择的数据库名称
<?php
$host="127.0.0.1";
$username="pipasound";
$password="123";
$dbname="db_database18"
$connID=@mysqli_connect($host,$username,$password);
if(mysqli_select_db($connID,$dbname)){
echo "数据库连接成功";
}else{
echo"数据库连接失败";
}
连接错误时的提示
mysqli_connect_errno();
mysqli_connect_errno(); //返回最后一次连接调用的错误代码
mysqli_connect_error(); //返回一个字符串描述的最后一次连接调用的错误代码
可以这么写
if(mysqli_connect_errno()){
exit(mysqli_connect_error());
}
设置默认字符编码
mysqli_set_charset($link,'utf-8');
选择特定的数据库
mysqli_select_db($link,'bbs');
关闭与mysql服务器的连接
mysqli_close($link);
执行SQL语句
mysqli_query(mysql link,string query)
- link为必选参数,应用mysqli_connect()函数成功建立MYSQL服务器后返回的连接标识
- query为必选参数,所要执行的查询语句
例子
前言
我用的是warmserve,用户名默认root,密码为空
创建数据库
建立名为mydb的数据库
<?php
/*
建立连接
其中第一个参数是服务器地址。
其中第二个参数是用户名。
其中第三个参数是密码。
这些参数需要自己查。
*/
$con =mysqli_connect("localhost","root","");
mysqli_set_charset($con,'utf-8');
//判断连接是否成功
if (!$con){
//连接失败输出错误。
die('无法连接: ' . mysqli_connect_error());
}
//生成SQL语句,创建数据库mydb
$sql = " CREATE DATABASE mydb ";
//调用mysqli的query方法
if (mysqli_query($con,$sql)){
echo "创建成功";
}else{
echo "数据库创建失败: " . mysqli_connect_error();
}
//关闭连接
mysqli_close($con);
?>
创建一个名User的数据表
SQL语句 为
CREATE TABLE User
(id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
password VARCHAR(20) NOT NULL,
sex VARCHAR(20) NOT NULL,
dob DATE NOT NULL,
email VARCHAR(50) NOT NULL);
代码
<?php
// 创建连接,这里多的参数是数据库名称。
$con =mysqli_connect("localhost","root","", "mydb");
// 检测连接
if (!$con) {
die("连接失败: " .mysqli_connect_error());
}
// 使用 sql 创建数据表
$sql = "CREATE TABLE User (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
password VARCHAR(20) NOT NULL,
sex VARCHAR(20) NOT NULL,
dob DATE NOT NULL,
email VARCHAR(50) NOT NULL
);";
//调用mysqli的query方法
if (mysqli_query($con,$sql)) {
echo "Table User created successfully";
} else {
echo "创建数据表错误: " .mysqli_connect_error();
}
//关闭连接
mysqli_close($con);
?>
数据的插入
我们向数据表里插入如下数据:
‘测试’, ‘12345678’,’man’,’2016-3-3’,’test@example.com’
SQL语句如下:
INSERT INTO User
(name,password,sex,dob,email)
VALUES
('测试', '12345678','man','2016-3-3','test@example.com');
代码:
<?php
// 创建连接
$con = mysqli_connect("localhost","root","", "mydb");
// 检测连接
if (!$con) {
die("连接失败: " . mysqli_connect_error());
}
// 使用 sql 插入数据
$sql = "INSERT INTO User (name,password,sex,dob,email)
VALUES ('测试', '12345678','man','2016-3-3','test@example.com')";
if (mysqli_query($con,$sql)) {
echo "数据插入成功";
} else {
echo "插入错误: " .mysqli_connect_error();
}
//关闭连接
mysqli_close($con);
?>
数据的预处理
插入数据时为了提高效率和防止注入使用预处理方式。
使用如下语句:
INSERT INTO User
(name,password,sex,dob,email)
VALUES
(?, ?,?,?,?);
数据查询
查询数据库中的名字。
<?php
// 创建连接
$con = mysqli_connect("localhost","root","", "mydb");
// 检测连接
if (!$con) {
die("连接失败: " .mysqli_connect_error());
}
//查询语句
$sql = "SELECT name FROM User";
$result = mysqli_query($con,$sql);
//输出数据
if($result->num_rows>0){
while($row =$result->fetch_assoc()){
echo $row["name"]."<br>";
}
}
mysqli_close($con);
?>
函数速查
- mysqli_real_escape_string()
转义用于SQL语句中的特殊字符防止SQL语句出错