Hice la busqueda correspondiente al foro sobre el tema de transaccione, encontre mucha informacion que me ha sesrvido para aclararme en este tema, ya solo me gustaria su punto de vista, este es un ejemplo de una trasaccion que implementare:
Código PHP:
Ver original
$con_db = conecta_db(); $i=1; $retval = 0; echo $registro['clave']." - ".$registro['nombre']."<br />"; //insert tabla2 if($insercion1){ //si hubo afectaciones $retval = 1; } $i++; } if($retval==0){ echo 'MAL no insercion table dos: SE EJECUTA EL ROLLBACK<br />'; } else{ //select into de tabla2 for update $resultado = mysql_query("SELECT * INTO OUTFILE 'C:/wamp/www/transaccion/prueba2.txt' FIELDS TERMINATED BY '' LINES TERMINATED BY '\\n' FROM dos FOR UPDATE"); if($resultado){ echo 'OK: SE EJECUTA EL COMMIT<br />'; } else{ echo 'MAL: SE EJECUTA EL ROLLBACK<br />'; } } $con_db = desconecta_db($con_db);
Aclaro que lei sobre el uso de mysqli y del cual estoy conciente que debo ir reemplazando poco a poco en mis sistemas.
Tambien quise implementar el try/catch pero como mysql/mysqli no tiene aun soporte para excepciones (corrijanme si estoy mal) decide dejar las validaciones con if/else
Es importante mencionar que ocupo select for update porque la intencion de este sistemita es que se realice un proceso que ocupara dos tablas de paso las cuales deben estar inaccesibles para leer/escribir mientras el usuario este haciendo el proceso.
el archivo prueba.txt contiene:
Código:
y la salida (prueba2.txt):1|dexter| 2|ronaldo| 3|lucrecia| 4|rusky| 5|jordana|
Código:
1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
lo cual es correcto
bueno les agradezco de antemano