Transacciones de base de datos con Kohana

Aparentemente la versión actual de Kohana (2.2) aún no cuenta con soporte para transacciones en su clase Database.

Buscando entre los foros encontré una solución sencilla, rápida y elegante, sin embargo me preocupa que, a pesar de que utiliza la sintaxis de CodeIgniter, no vaya a ser compatible con la siguiente liberación de Kohana de la cual no encontré documentación.

Así que por ahora voy a establecer las transacciones de manera manual y -espero- compatible con las bases de datos y futuras liberaciones de Kohana.

Iniciar la transacción.

$this -> db -> query('SET AUTOCOMMIT=0');
$this -> db -> query('BEGIN');

Aceptar/ejecutar la transacción.

$this -> db -> query('COMMIT');
$this -> db -> query('SET AUTOCOMMIT=1');

Cancelar/devolver la transacción.

$this -> db -> query('ROLLBACK');
$this -> db -> query('SET AUTOCOMMIT=1');

Nota: para Microsoft SQL Server los comandos deberán ser BEGIN TRANSACTION, COMMIT TRANSACTION y ROLLBACK TRANSACTION. Las modificaciones al AUTOCOMMIT no son válidas para este motor de base de datos.

Enlaces:

Leave a Reply

Your email address will not be published. Required fields are marked *