PHP中的mysqli
扩展提供了对MySQL数据库的访问。事务(Transaction)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),简称ACID特性。
事务分为两种类型:
事务常用于以下场景:
以下是一个使用mysqli
进行显式事务处理的示例:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 开启事务
$conn->begin_transaction();
try {
// 执行SQL语句
$sql1 = "UPDATE accounts SET balance = balance - 100 WHERE id = 1";
$sql2 = "UPDATE accounts SET balance = balance + 100 WHERE id = 2";
if ($conn->query($sql1) === TRUE && $conn->query($sql2) === TRUE) {
// 提交事务
$conn->commit();
echo "转账成功";
} else {
// 回滚事务
$conn->rollback();
echo "转账失败";
}
} catch (Exception $e) {
// 发生异常时回滚事务
$conn->rollback();
echo "发生异常: " . $e->getMessage();
}
// 关闭连接
$conn->close();
?>
return
、throw
、die
等)之前提交或回滚事务,并使用try-catch
块捕获异常。READ COMMITTED
、REPEATABLE READ
等。希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云