mysqli
是 PHP 中的一个扩展,用于与 MySQL 数据库进行交互。它提供了面向对象和过程式的 API,使得开发者可以方便地执行 SQL 查询、处理结果集等操作。多语句执行是指在一个 SQL 语句中执行多个子查询或命令。
mysqli
支持两种类型的多语句执行:
mysqli_query()
调用中执行多个 SQL 语句。mysqli_stmt
对象执行预处理的多语句。多语句执行常用于以下场景:
以下是一个使用 mysqli
执行多语句的简单示例:
<?php
$host = 'localhost';
$user = 'username';
$password = 'password';
$dbname = 'database_name';
// 创建连接
$conn = new mysqli($host, $user, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 开启事务
$conn->begin_transaction();
try {
// 执行多个 SQL 语句
$sql = "INSERT INTO table1 (column1, column2) VALUES ('value1', 'value2');";
$sql .= "UPDATE table2 SET column1 = 'new_value' WHERE id = 1;";
$sql .= "DELETE FROM table3 WHERE id = 2;";
if ($conn->multi_query($sql)) {
// 获取结果集
do {
if ($result = $conn->store_result()) {
// 处理结果集
$result->free();
}
} while ($conn->next_result());
}
// 提交事务
$conn->commit();
} catch (Exception $e) {
// 回滚事务
$conn->rollback();
echo "发生错误: " . $e->getMessage();
}
// 关闭连接
$conn->close();
?>
通过以上信息,您应该能够更好地理解 mysqli
多语句的概念、优势、类型、应用场景以及常见问题的解决方法。
领取专属 10元无门槛券
手把手带您无忧上云