{site_name}

{site_name}

🌜 搜索

在PHP中,mysqli::rollback是用于撤消当前事务的函数

php 𝄐 0
phpmysqli占位符使用,phpmysqli读取行数
在PHP中,mysqli::rollback是用于撤消当前事务的函数。当你在使用mysqli库执行多个SQL语句时,如果其中任意一个SQL语句出现错误,你可以使用rollback函数将事务回滚到之前的状态,即使之前已经执行的SQL语句也会被撤销。

下面是一个使用mysqli::rollback函数的例子:

php
<?php
// 建立数据库连接
$conn = new mysqli("localhost", "username", "password", "database");

// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败:" . $conn->connect_error);
}

// 开始事务
$conn->autocommit(false);

// 执行多个SQL语句
$sql1 = "INSERT INTO table1 (column1) VALUES ('value1')";
$sql2 = "UPDATE table2 SET column2 = 'value2' WHERE id = 1";
$sql3 = "DELETE FROM table3 WHERE column3 = 'value3'";

// 执行SQL语句
$result1 = $conn->query($sql1);
$result2 = $conn->query($sql2);
$result3 = $conn->query($sql3);

// 检查是否有任意一个SQL语句执行失败
if (!$result1 || !$result2 || !$result3) {
// 回滚事务
$conn->rollback();
echo "事务回滚成功!";
} else {
// 提交事务
$conn->commit();
echo "事务提交成功!";
}

// 关闭数据库连接
$conn->close();
?>


在上面的例子中,我们首先建立了与数据库的连接,并开启了一个事务。然后执行了三个SQL语句,如果其中任意一个出现错误,就会回滚事务并输出"事务回滚成功!",否则会提交事务并输出"事务提交成功!"。最后关闭数据库连接。

请注意,使用mysqli::rollback函数前,必须先通过调用mysqli::autocommit(false)方法关闭自动提交功能。否则,当执行失败时,MySQL将自动提交当前事务,而不会回滚。