1、MySQLi相对于MySQL的优势
image.png
2、MySQLi扩展的安装
image.png
3、验证扩展是否开启
phpinfo(); // 可以查看扩展是否开启
image.png
检测是否加载
var_dump(extension_loaded("mysqli")); // 检测扩展是否加载 返回真或者假
检测扩展中的函数
var_dump(function_exists("mysqli_connect")); // 检测扩展中某个函数是否存在来验证扩展是否加载
得到当前开启的扩展
print_r(get_loaded_extensions()); // 得到当前开启的扩展
4、基于面向对象使用MySQLi
// 1、建立到MySQL的连接
$mysqli = new mysqli('localhost','root','');
// 2、选择操作的数据库
$mysqli->select_db('article');
print_r($mysqli);
if ($mysqli->connect_errno){
// 如果错误编号大于0 则结束
die('Connect Error:'.$mysqli->connect_error);
}
5、获取客户端信息
echo "客户端的信息:".$mysqli->client_info."<br />";
echo $mysqli->get_client_info()."<br />";
echo "客户端的版本:".$mysqli->client_version."<br />";
image.png
6、获取服务端信息
echo "服务端的信息:".$mysqli->server_info."<br />";
echo $mysqli->get_server_info()."<br />";
echo "服务端的版本:".$mysqli->server_info."<br />";
image.png
7、设置客户端编码方式utf-8
// 设置客户端编码方式utf-8
$mysqli->set_charset("utf-8");
8、select/desc/describe/show/explain执行成功返回mysqli_result对象,执行失败返回false,对于其他的sql语句 执行成功返回true,失败返回false
9、获取全部记录
$rows = $mysqli_result->fetch_all(); // 获取结果集中所有记录,默认返回的是二维索引+索引的形式
$rows = $mysqli_result->fetch_all(MYSQLI_NUM); // 获取结果集中所有记录,默认返回的是二维索引的形式
$rows = $mysqli_result->fetch_all(MYSQLI_ASSOC); // 二维关联数组
$rows = $mysqli_result->fetch_all(MYSQLI_BOTH); // 二维索引+关联数组
10、获取单条记录
$row = $mysqli_result->fetch_row(); // 取结果集中的一条记录作为索引数组返回
$row = $mysqli_result->fetch_assoc(); // 取结果集中的一条记录作为关联数组返回
$row = $mysqli_result->fetch_array(); // 取结果集中的一条记录作为索引+关联数组返回
$row = $mysqli_result->fetch_array(MYSQLI_ASSOC); // 取结果集中的一条记录作为关联数组返回
$row = $mysqli_result->fetch_object(); //
11、移动指针位置
$mysqli_result->data_seek(0); // 0表示指针移动到指向第一条的位置
12、实现多条语句操作
header("content-type:text/html;charset=utf-8");
$mysqli = new mysqli('localhost','root','','article');
if ($mysqli->errno){
die("CONNECT ERROR:".$mysqli->error);
}
$mysqli->set_charset("utf8");
$sql= "insert into user(username,age) values('imooc2',11);";
$sql .= "update user set age = 100 where id = 2";
// 针对多条sql语句的查询
$res = $mysqli->multi_query($sql);
var_dump($res);
13、执行多条查询语句处理多个结果集
$sql = "select id,username,age from user;";
$sql.= "select * from user;";
// user_result()/store_result 先获得第一个结果集
// more_results():检测是否有更多的结果集
// next_result():将结果集指针向下移动一位
if ($mysqli->multi_query($sql)){
do{
if ($mysql_result=$mysqli->store_result()){
$rows[]=$mysql_result->fetch_all(MYSQLI_ASSOC);
}
}while($mysqli->more_results() && $mysqli->next_result());
}else {
echo $mysqli->error;
}
14、实现预处理
$sql = "insert user(username,age) values(?,?);";
// 准备预处理语句
$mysqli_stmt = $mysqli->prepare($sql);
$username = 'king';
$age = 23;
// 绑定参数
$mysqli_stmt->bind_param('si',$username,$age);
// 执行预处理语句
if ($mysqli_stmt->execute()){
echo $mysqli_stmt->insert_id;
}else {
$mysqli_stmt->error;
}
15、执行事务
image.png
网友评论