PDO
PHP Manual

PDO::rollBack

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDO::rollBack Revierte una transacción

Descripción

bool PDO::rollBack ( void )

Revierte la transacción actual, que fue iniciada por PDO::beginTransaction(). Se lanzará una excepción de tipo PDOException si no hay ninguna transacción activa.

Si la base de datos se estableció al modo 'autocommit', esta función restablecerá el modo 'autocommit' después de haber revertido la transacción.

Algunas bases de datos, incluyendo MySQL, ejecutan un COMMIT implícito cuando una sentencia de lenguaje de definición de base de datos (DDL), como DROP TABLE o CREATE TABLE, se ejecuta dentro de una transacción. El COMMIT implícito pevendrá de revertir cualquier otro cambio dentro de los límites de la transacción.

Valores devueltos

Devuelve TRUE en caso de éxito o FALSE en caso de error.

Ejemplos

Ejemplo #1 Revertir una transacción

El siguiente ejemplo comienza una transacción y ejecuta dos sentencias que modifican la base de datos antes de revertir los cambios. En MySQL, sin embargo, la sentencia DROP TABLE consigna automáticamente la transacción, por lo que no son revertidos ninguno de los cambios en la transacción.

<?php
/* Comenzar una transacción, desactivando el modo 'autocommit' */
$gbd->beginTransaction();

/* Cambiar el esquema y los datos de la base de datos */
$sth $gbd->exec("DROP TABLE fruit");
$sth $gbd->exec("UPDATE dessert
    SET name = 'hamburger'"
);

/* Reconocer el error y revertir los cambios */
$gbd->rollBack();

/* Ahora la conexión a la base de datos a vuelto al modo 'autocommit' */
?>

Ver también


PDO
PHP Manual