当前位置: 首页> 函数类别大全> mysqli::rollback

mysqli::rollback

(mysqli_rollback)回滚当前事务
名称:mysqli::rollback
分类:MySQLi
所属语言:php
一句话介绍:回滚数据库的当前事务。

mysqli::rollback

适用 PHP 版本

PHP 5, PHP 7, PHP 8

函数说明

mysqli::rollback 函数用于撤销当前数据库连接中最近开始的事务。当你开启了事务处理(使用 mysqli::begin_transaction() 或设置了自动提交为 false),可以使用该方法回滚未提交的更改。

函数语法

bool mysqli::rollback ([ int $flags = 0 [, string $name ]] )

过程化风格:
bool mysqli_rollback ( mysqli $link [, int $flags = 0 [, string $name ]] )

参数

  • $flags(可选):此参数预留供将来使用,目前应设置为 0。
  • $name(可选):若使用了保存点,可以传入保存点名称来回滚到该点。

返回值

成功时返回 true,失败时返回 false

示例

  $mysqli = new mysqli("localhost", "username", "password", "database");
<p>// 检查连接<br>
if ($mysqli->connect_error) {<br>
die("连接失败: " . $mysqli->connect_error);<br>
}</p>
<p>// 关闭自动提交<br>
$mysqli->autocommit(false);</p>
<p>// 插入数据<br>
$mysqli->query("INSERT INTO test (name) VALUES ('测试1')");<br>
$mysqli->query("INSERT INTO test (name) VALUES ('测试2')");</p>
<p>// 出错时回滚<br>
if (!$mysqli->query("INSERT INTO not_exist_table (col) VALUES ('err')")) {<br>
echo "发生错误,执行回滚。";<br>
$mysqli->rollback();<br>
} else {<br>
$mysqli->commit();<br>
echo "事务已提交。";<br>
}</p>
<p>$mysqli->close();<br>

示例代码的说明

本示例演示了如何使用事务处理来控制多条 SQL 语句的执行。通过设置 autocommit(false) 来开启事务,执行多条插入语句后,如果某条语句出错(如插入不存在的表),则调用 rollback() 撤销所有更改。否则,调用 commit() 提交事务。

同类函数
热门文章