Como realizar una transacción de Mysql con PHP

28 de Dic, 2015

Cuando necesitamos realizar muchas entradas en nuestro query y queremos que si existiera algún error en uno de estos queries,  no se nos guarde en la tabla de datos ningunos de los resultados anteriores, usamos una “query transaction”. La cual ira guardado todo los querys y al final confirmará mediante un “Commit” el cierre y proceso de la transacción o un “Rollback”, vuelta atrás de los queries enviados.

// comenzamos nuestra transaccion

mysql_query(“START TRANSACTION”);
$flag = true;
$query = “INSERT INTO testing (myid) VALUES (‘test’)”;

$query2 = “INSERT INTO testing2 (myid2) VALUES (‘test2’)”;

$result = mysql_query($query) or trigger_error(mysql_error(), E_USER_ERROR);
if (!$result) { // si tenemos un resultado erroneo colocaremos a false nuestra bandera $flag
$flag = false;
}

$result = mysql_query($query2) or trigger_error(mysql_error(), E_USER_ERROR);
if (!$result) {// si tenemos un resultado erroneo colocaremos a false nuestra bandera $flag
$flag = false;
}

if ($flag) {
mysql_query(“COMMIT”); // aca le decimos que no hay error y puede proceder a guardar los queries
} else {
mysql_query(“ROLLBACK”);// aca le decimos que hay error y que proceda a eliminar los queries
}

[/php ]