1.4.2. Transacciones

PEAR::DB proporciona mecanismos para tratar las transacciones independientemente del SGBD con que trabajemos.

Como ya hemos comentado, la operativa con las transacciones está relacionada con las sentencias begin, commit y rollback de SQL. PEAR::DB envuelve estas sentencias en llamadas a métodos suyos, del modo siguiente:

           

 

Atención
En MySQL sólo funcionará el soporte de transacciones si la base de datos está almacenada con el mecanismo InnoDB. En PostgreSQL no hay restricción alguna.
En ningún sitio...
... se hace un begin. Al desactivar el autocommit (que está activado por defecto) todas las sentencias pasarán a formar parte de una transacción, que se registrará como definitiva en la base de datos al llamar al método commit() o bien se desechará al llamar al método rollback(), volviendo la base de datos al estado en el que estaba después del último commit().

 

// Desactivamos el comportamiento de COMMIT automático.
$db->autocommit(false);
..
..
if (...) {
   $db->commit();
} else {
$db->rollback();
}