Black log

Transacciones con Propel 1.3 y Symfony >= 1.2

Escrito por admin el 26-12-2009

Cuando tenemos que actualizar varias tablas, insertando, borrando o actualizando varios registros en cada una de las mismas y cuya integridad puede estar en riesgo en caso de que una de las operaciones falle, nos es crítico el uso de transacciones.

Si estamos usando Symfony y el orm Propel, con mySql e innodb, podemos hacer lo siguiente:


    $con = Propel::getConnection();

    try {
         //abrimos la transacción
         $con->beginTransaction();

         //operaciones pertinentes contra la base de datos

         //si todo va bien guardamos los cambios
         $con->commit();

    } catch (Exception $e) {

         // Hacemos rollback de los cambios en caso de fallo
         $con->rollback();
         //devolvemos el error al depurador
         throw $e;
    }

Saludos, Asier Marqués

— Posted by admin | Posted in Desarrollo web | Posted on 26/12/2009

1 Comentario
dejar un comentario »

» RSS para los comentarios de éste post.
» TrackBack URL

Deja un comentario