PDO::rollBack
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::rollBack —
Revierte una transacción
Descripción
public PDO::rollBack():
bool
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.
Errores/Excepciones
Lanza una PDOException si no hay ninguna transacción activa.
Nota: Se emite una excepción inclusi cuando el atributo PDO::ATTR_ERRMODE
no es PDO::ERRMODE_EXCEPTION
.
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' */
?>