PHP中的mysqli扩展提供了对MySQL数据库的事务处理支持。事务是一组原子性的SQL查询,要么全部执行成功,要么全部执行失败,确保数据的一致性和完整性。
mysqli_begin_transaction()开始一个事务,通过mysqli_commit()提交事务,通过mysqli_rollback()回滚事务。<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("连接失败: " . $mysqli->connect_error);
}
// 开始事务
$mysqli->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 ($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();
?>mysqli_commit()。mysqli_rollback()。READ COMMITTED或REPEATABLE READ。通过以上方法,可以有效地处理PHP中的mysqli事务,确保数据的一致性和完整性。