PHP数据库的连接
函数:mysqli_connect()
/*
*连接数据库
*/
$host='localhost'; //主机名或IP
$user='onion'; //用户名
$password='onion'; //密码
$database='php_wish'; //数据库名
$port=3306; //端口号,看省略
$charset='utf8'; //字符集
$link=mysqli_connect($host, $user, $password, $database, $port);
if(!$link){
exit('数据库连接失败!');
}
mysqli_set_charset($link, $charset); //设置数据库的字符集
注:
当数据库连接失败时,mysqli_connect()函数会给出错误提示信息但影响用户体验。这时可以使用@屏蔽错误信息,让程序只输出指定的提示信息
$link = mysqli_connect('localhost','root','123456') or exit('数据库连接失败!');
or是比较运算符,只有左边表达式的值为false时,才会执行右边的表达式;exit用于停止脚本,同时输出错误信息。另外,如果需要获取具体的错误信息,可以通过 mysqli_connect_error()
函数来获取
执行SQL语句
在完成PHP于MySQL数据库连接后,通常使用 mysql_query()
函数发送sql语句,获取结果集
$result = mysqli_query($link,$sql)
//打开数据库myInfo
mysqli_query($link,"use database 'myInfo'")
$link是通过mysqli_connect()
函数获取的数据库连接,$sql表示sql语句
处理结果集
在使用mysqli_query()
执行select等语句后会返回一个资源类型的结果集,因此使用函数从结果集中获取信息
mysqli_num_rows():获取结果集中的数量
mysqli_fetch_all():获取所有的结果,并以数组方式饭hi
mysqli_fetch_array():获取一行结果,并以数组方式返回
mysqli_fetch_assoc():获取一行结果并以关联数组返回
mysqli_fetch_row():获取一行结果并以索引数组返回
例:
while($row = mysqli_fetch_assoc($result)){
......
}
每次获取结果集的一行,当结果集中的数据全部取出后返回false终止循环
其它操作函数
mysqli_insert_id():获取上一次插入操作时产生的id号
mysqli_affected_rows():获取上一次操作时受影响的行数
mysqli_error():返回最近函数调用的错误代码
mysqli_free_result():释放结果集
mysqli_close():关闭数据库连接
预处理 了解
- 预处理模板:
mysqli_prepare()
- 模板的参数绑定:
mysqli_stmt_bind_params()
- 实现预处理的执行:
mysqli_stmt_execute()
实例
//连接数据库并设置字符集
$link = mysqli_connect('localhost','root','123456');
mysqli_set_charset($link,'utf-8');
//设置预处理模板
$stmt = mysqli_prepare($link,`update 'student' set 'name'=? where 'id'= ?);
//绑定参数,并为绑定的变量赋值
mysqli_stmt_bind_param($stmt,'si',$name,$id); //name字符型,id整型
$name = 'dsa';
$id = 1;
//执行
mysqli_stmt_query($stmt)
注:mysqli_stmt_bind_param函数的第二个参数为绑定变量的数据类型,数据类型要与变量类型一一对应
i: 表示变量为MYSQL中的integer类型
d: 表示变量为MYSQL中的double类型
s: 表示变量为MYSQL中的string类型
b: 表示变量为MYSQL中的blob类型
数据库操作类:传送门