PDO::beginTransaction inicia una transacción (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDO::beginTransaction ( anulado )
Desactive el modo de confirmación automática. Cuando el modo de confirmación automática está desactivado, los cambios realizados en la base de datos a través de instancias de objetos PDO no se confirman hasta que se llama a PDO::commit() para finalizar la transacción.
Llamar a PDO::rollBack() revertirá los cambios realizados en la base de datos y devolverá la conexión de la base de datos al modo de confirmación automática.
Algunas bases de datos, incluida MySQL, realizan automáticamente una confirmación de transacción implícita al emitir una declaración DDL como DROP TABLE o CREATE TABLE.
La confirmación implícita le impedirá revertir cualquier otro cambio dentro del alcance de esta transacción.
El siguiente ejemplo inicia una transacción y emite dos declaraciones que modifican la base de datos antes de revertir los cambios.
Pero en MySQL, la declaración DROP TABLE confirma automáticamente la transacción para que cualquier cambio en esta transacción no se revierta.
<?php/* Iniciar una transacción y desactivar el envío automático*/$dbh->beginTransaction();/* Cambiar la estructura y los datos de la base de datos*/$sth = $dbh->exec("DROP TABLE fruit");$ sth = $dbh->exec("ACTUALIZAR postre SET nombre = 'hamburguesa'");/* Reconocer el error y revertir los cambios*/$dbh->rollBack();/* La conexión de la base de datos ahora vuelve al modo de confirmación automática*/?>