🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、概述 * **MySQLi extension** ("i" 意为 improved) * **PDO (PHP Data Objects)** >[danger] MySQLi 和 PDO 有它们自己的优势: > PDO 应用在 12 种不同数据库中, MySQLi 只针对 MySQL 数据库。 > 所以,如果你的项目需要在多种数据库中切换,建议使用 PDO ,这样你只需要修改连接字符串和部分查询语句即可。 使用 MySQLi, 如果不同数据库,你需要重新编写所有代码,包括查询。 > 两者都是面向对象, 但 MySQLi 还提供了 API 接口; ![](https://img.kancloud.cn/4c/8b/4c8ba83b1201004466339ec15556e40e_831x332.png) ![](https://img.kancloud.cn/72/ea/72ea5d39c7a23348c7da0f35ef3cfd44_818x306.png) ![](https://img.kancloud.cn/21/bd/21bd2512f41fbee5d84d1b2410e48fdc_821x305.png) ## 二、明细 **连接数据库** ``` $mysqli = mysqli("localhost","root","password",person); ``` **判断连接是否成功** ``` // 判断错误码,只要不为0即为连接失败 if($mysqli->connect_errno){ die($mysqli->connect_error); //断开连接并打印错误信息 ); ``` **操作数据库** ``` $mysqli->query("set names utf8"); $result = $mysqli->query("INSERT INTO teacher (firstName,lastName,email,city) VALUES('jimson','zhu','18198936160@163.com','guangdongguangzhou')"); ``` **判断操作是否成功** ``` if($result){ echo "插入成功"; }else{ echo "插入失败"; } ``` **关闭数据库连接** ``` $mysqli->close(); ``` ## 三、实例 增删改类: ``` function insertData($sql) { $mysqli = mysqli("localhost","root","password",person); if($mysqli->connect_errno){ die($mysqli->connect_error); ); $mysqli->query("set names utf8"); $result = $mysqli->query($sql); if($result){ echo "插入成功"; }else{ echo "插入失败"; } $mysqli->close(); } $sql = "INSERT INTO teacher (firstName,lastName,email,city) VALUES('中文测试','zhu','18198936160@163.com','guangdongguangzhou')"; insertData($sql); ``` 数据查询类: ``` function fetchData($sql) { $mysqli = mysqli("localhost","root","password",person); if($mysqli->connect_errno){ die($mysqli->connect_error); ); $mysqli->query("set names utf8"); $result = $mysqli->query($sql); // 判断查询结果是否为空 if($result->num_rows){ // 处理查询结果 // 有以下几种处理方式 // 方式一:fetch_row() 返回的是一个数组 while($row = $result->fetch_row()){ print_r($row); } // 方式二:fetch_array() while($row = $result->fetch_array(MYSQLI_ASSOC)){ //以下标数组形式查询 print_r($row); } // 方式三:fetch_all() $row = $result->fetch_all(MYSQLI_ASSOC); echo json_encode($row); // 返回json格式数据,更有利于前端处理 }else{ echo "查询失败"; } $mysqli->close(); } $sql = "SELECT * FROM teacher"; fetchData($sql); ```