Blog

Transacciones con Propel 1.3 y Symfony >= 1.2

Publicado en Desarrollo web en diciembre 26, 2009 8:24 pm

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

Comentarios Cerrados.