PDO::rollBack

PHP PDO 参考手册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();

/*  此时数据库连接恢复到自动提交模式  */
?>

PHP PDO 参考手册Manual de referencia de PHP PDO

Otras extensiones