PDO::rollBack
Manual de referencia de PHP PDO
PDO::rollBack — Revertir una transacción (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
Descripción
Sintaxis
bool PDO::rollBack ( void )
Revierte la transacción actual iniciada por PDO::beginTransaction(). Si no hay una transacción activa, se lanzará una excepción PDOException.
Si la base de datos está configurada en modo de confirmación automática, esta función (método) restablecerá el modo de confirmación automática después de revertir la transacción.
Algunas bases de datos, incluido MySQL, cuando hay sentencias DDL como eliminar o crear tablas dentro de una transacción, provocan automáticamente una confirmación implícita. La confirmación implícita no permitirá revertir ningún cambio realizado dentro de esta transacción.
Valor de retorno
Devuelve TRUE en caso de éxito, o FALSE en caso de error.
Ejemplo
Revertir una transacción
El siguiente ejemplo inicia una transacción y ejecuta dos sentencias que modifican la base de datos antes de revertir los cambios. Sin embargo, en MySQL, la sentencia DROP TABLE confirma automáticamente la transacción, por lo que ninguno de los cambios realizados en esta transacción será revertido.
<?php
/* 开始一个事务,关闭自动提交 */
$dbh->beginTransaction();
/* 更改数据库架构和数据 */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
SET name = 'hamburger'");
/* 识别错误且回滚更改 */
$dbh->rollBack();
/* 此时数据库连接恢复到自动提交模式 */
?>
Otras extensiones