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.

  1. // comenzamos nuestra transaccion
  2.  
  3. mysql_query("START TRANSACTION");
  4. $flag = true;
  5. $query = "INSERT INTO testing (myid) VALUES ('test')";
  6.  
  7. $query2 = "INSERT INTO testing2 (myid2) VALUES ('test2')";
  8.  
  9. $result = mysql_query($query) or trigger_error(mysql_error(), E_USER_ERROR);
  10. if (!$result) { // si tenemos un resultado erroneo colocaremos a false nuestra bandera $flag
  11. $flag = false;
  12. }
  13.  
  14. $result = mysql_query($query2) or trigger_error(mysql_error(), E_USER_ERROR);
  15. if (!$result) {// si tenemos un resultado erroneo colocaremos a false nuestra bandera $flag
  16. $flag = false;
  17. }
  18.  
  19. if ($flag) {
  20. mysql_query("COMMIT"); // aca le decimos que no hay error y puede proceder a guardar los queries
  21. } else {
  22. mysql_query("ROLLBACK");// aca le decimos que hay error y que proceda a eliminar los queries
  23. }