PDO
PHP Manual

PDO::beginTransaction

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

PDO::beginTransaction Inicia una transacción

Descripción

bool PDO::beginTransaction ( void )

Desctiva el modo 'autocommit'. Mientras el modo 'autocommit' esté desactivado, no se consignarán los cambios realizados en la base de datos a través de una instancia de PDO hasta que se finalice la transacción con una llamada a PDO::commit(). Una llamada a PDO::rollBack() revertirá todos los cambios de la base de datos y devolverá la conexión al modo 'autocommit'.

Algunas bases de datos, incluida MySQL, ejecután automáticamente un CCOMMIT implícito cuando una sentencia de definición de lenguaje de base de datos (DDL), tales como DROP TABLE o CREATE TABLE, se ejecutan en una transacción. El CCOMMIT implícito prevendrá de la reversión de cualquier otro cambio dentro del límite 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 inicia 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 automáticamente consigna la transacción, con lo cual, ninguno de los cambios en la transacción son revertidos.

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

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

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

/* La conexión a la base de datos ahora vuelve al modo 'autocommit' */
?>

Ver también


PDO
PHP Manual