📅  最后修改于: 2023-12-03 15:03:07.832000             🧑  作者: Mango
MySQLi 是 PHP 中一个非常流行的扩展库,它提供了对 MySQL 数据库的访问方法。MySQLi 还提供了以下特性:
MySQLi 扩展库默认是开启的,只需在 PHP 配置文件中取消注释即可:
extension=mysqli
如果需要手动加载扩展库,可以使用以下命令:
<?php
// 动态加载扩展库
extension_loaded('mysqli') or die('无法加载扩展库!');
// 或者使用 dl() 函数加载扩展库
dl('mysqli.so');
使用 MySQLi 面向对象 API 连接 MySQL 数据库可以这样实现:
<?php
// 创建 mysqli 对象
$mysqli = new mysqli("localhost", "root", "password", "database_name");
// 检查连接是否成功
if ($mysqli -> connect_errno) {
echo "连接 MySQL 数据库失败:" . $mysqli -> connect_error;
exit();
}
echo "连接 MySQL 数据库成功。";
如果连接成功,将会输出“连接 MySQL 数据库成功。”,否则将会输出错误信息。
使用 MySQLi 查询数据可以这样实现:
<?php
// 创建 mysqli 对象
$mysqli = new mysqli("localhost", "root", "password", "database_name");
// 检查连接是否成功
if ($mysqli -> connect_errno) {
echo "连接 MySQL 数据库失败:" . $mysqli -> connect_error;
exit();
}
// 查询数据
$sql = "SELECT * FROM table_name";
$result = $mysqli -> query($sql);
// 输出数据
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 结果";
}
使用上述代码可以查询表中的所有数据,并输出结果。
使用预处理语句可以避免 SQL 注入攻击并提高执行效率。使用 MySQLi 预处理语句可以这样实现:
<?php
// 创建 mysqli 对象
$mysqli = new mysqli("localhost", "root", "password", "database_name");
// 检查连接是否成功
if ($mysqli -> connect_errno) {
echo "连接 MySQL 数据库失败:" . $mysqli -> connect_error;
exit();
}
// 使用预处理语句插入数据
$stmt = $mysqli->prepare("INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $value1, $value2, $value3);
// 设置参数并执行语句
$value1 = "value1";
$value2 = "value2";
$value3 = "value3";
$stmt->execute();
echo "插入数据成功。";
使用上述代码可以插入数据,并输出结果。
使用 MySQLi 事务处理可以把一组 SQL 语句组成一个完整的操作单元,并且可以保证每个操作都完全执行或完全不执行。使用 MySQLi 事务处理可以这样实现:
<?php
// 创建 mysqli 对象
$mysqli = new mysqli("localhost", "root", "password", "database_name");
// 检查连接是否成功
if ($mysqli -> connect_errno) {
echo "连接 MySQL 数据库失败:" . $mysqli -> connect_error;
exit();
}
// 开始事务处理
$mysqli->begin_transaction();
try {
// 执行 SQL 语句 1
$mysqli->query("SQL 语句 1");
// 执行 SQL 语句 2
$mysqli->query("SQL 语句 2");
// 提交事务处理
$mysqli->commit();
echo "提交事务处理成功。";
} catch(Exception $e) {
// 回滚事务处理
$mysqli->rollback();
echo "回滚事务处理成功。";
}
使用上述代码可以执行事务处理,并输出结果。
MySQLi 扩展库提供了强大、高效的连接管理和面向对象的 API。预处理语句支持可以避免 SQL 注入攻击,并提高执行效率。事务处理功能可以把一组 SQL 语句组成一个完整的操作单元,并且保证每个操作都完全执行或完全不执行。MySQLi 扩展库是 PHP 开发中不可或缺的一部分。