PHP MySQL事务处理主要包括以下步骤:
mysqli_begin_transaction()
函数开启一个新的事务。mysqli_affected_rows()
函数检查受影响的行数,以确保操作按预期执行。mysqli_commit()
函数提交事务。这将使所有更改永久生效。mysqli_rollback()
函数撤销所有更改。这通常用于处理运行时错误或意外情况。以下是一个简单的PHP MySQL事务处理示例:
<?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 {
// 插入第一条记录
$sql1 = "INSERT INTO Table1 (column1, column2) VALUES ('value1', 'value2')";
if (!$conn->query($sql1)) {
throw new Exception("Error inserting record 1: " . $conn->error);
}
// 插入第二条记录
$sql2 = "INSERT INTO Table2 (column1, column2) VALUES ('value3', 'value4')";
if (!$conn->query($sql2)) {
throw new Exception("Error inserting record 2: " . $conn->error);
}
// 提交事务
$conn->commit();
} catch (Exception $e) {
// 发生错误时回滚事务
echo "Error: " . $e->getMessage();
$conn->rollback();
}
$conn->close();
?>
在这个示例中,我们首先创建了一个到MySQL数据库的连接,然后开启了事务。接下来,我们尝试插入两条记录。如果任何一条记录插入失败,我们将捕获异常并回滚事务。如果所有记录都成功插入,我们将提交事务。