mysqli
是 PHP 中用于与 MySQL 数据库进行交互的扩展。事务(Transaction)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),简称 ACID 特性。
MySQL 支持两种事务隔离级别:
事务常用于需要保证数据一致性的场景,例如:
在 mysqli
中,可以通过以下步骤开启事务:
false
。<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("连接失败: " . $mysqli->connect_error);
}
// 开启事务
$mysqli->autocommit(false);
try {
// 执行 SQL 语句
$sql1 = "UPDATE accounts SET balance = balance - 100 WHERE id = 1";
$sql2 = "UPDATE accounts SET balance = balance + 100 WHERE id = 2";
if ($mysqli->query($sql1) === TRUE && $mysqli->query($sql2) === TRUE) {
// 提交事务
$mysqli->commit();
echo "事务提交成功";
} else {
// 回滚事务
$mysqli->rollback();
echo "事务回滚";
}
} catch (Exception $e) {
$mysqli->rollback();
echo "发生异常: " . $e->getMessage();
}
$mysqli->close();
?>
commit()
或 rollback()
。try-catch
块捕获异常并进行回滚。SET TRANSACTION ISOLATION LEVEL
语句设置正确的隔离级别。SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
通过以上步骤和示例代码,可以有效地在 mysqli
中开启和管理事务,确保数据的一致性和完整性。
领取专属 10元无门槛券
手把手带您无忧上云