函数名称:PDO::rollBack()
适用版本:PHP 5 >= 5.1.0, PHP 7, PHP 8
函数描述:PDO::rollBack() 方法用于回滚一个事务。
语法:public PDO::rollBack(): bool
参数:无
返回值:如果成功回滚事务,则返回 true。否则,返回 false。
示例:
try {
$pdo = new PDO("mysql:host=localhost;dbname=test", "username", "password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->beginTransaction();
$pdo->exec("UPDATE users SET balance = balance - 100 WHERE id = 1");
$pdo->exec("UPDATE users SET balance = balance + 100 WHERE id = 2");
// 执行其他操作...
$pdo->commit(); // 提交事务
echo "事务已提交";
} catch (PDOException $e) {
$pdo->rollBack(); // 回滚事务
echo "事务已回滚:" . $e->getMessage();
}
在上面的示例中,我们首先创建了一个 PDO 对象,并设置了错误模式为异常模式(ERRMODE_EXCEPTION)。然后,我们开始一个事务(beginTransaction()),在事务中执行了两个更新操作,然后提交事务(commit())。
如果在事务执行过程中出现了异常,catch 块会捕获到异常,然后我们调用 PDO::rollBack() 方法来回滚事务。
注意:PDO::rollBack() 方法只能在事务未提交或未回滚时调用,否则将抛出异常。