You are on page 1of 2

Transacciones

Primero que todo necesitamos contar con los servidores (php y mysql) instalados previamente. Luego necesitamos habilitar el soporte INNODB en mysql, ver en este post. Es importante saber que las transacciones son soportadas solo para las tablas tipo innodb, as que necesitamos crear las tablas o modificarlas con ste tipo. Esto se logra fcilmente con el atributo ENGINE = INNODB. Aqu esta el cdigo para hacerlo. Crear: CREATE TABLE tabla ... ENGINE = INNODB; Modificar: ALTER TABLE tabla ENGINE = INNODB; No hay que preocuparse con los datos en la modificacin ya que no sufren alteraciones. Luego ya en el cdigo de php tendremos algo como lo siguiente:

$SERVIDOR="TuHost"; $BASE_DATOS="TuBaseDeDatos"; $USUARIO="TuUsuario"; $PASSWORD="TuPassword"; $db = mysql_connect($SERVIDOR,$USUARIO,$PASSWORD); mysql_select_db($BASE_DATOS,$db); $error = 0; //variable para detectar error mysql_query("BEGIN"); // Inicio de Transaccin $result=mysql_query("INSERT INTO tabla1 VALUES (1,1000)"); if(!$result) $error=1; $result=mysql_query("INSERT INTO tabla2 VALUES (1,2000)"); if(!$result) $error=1; if($error) { mysql_query("ROLLBACK"); echo "Error en la transaccion"; } else { mysql_query("COMMIT");

echo "Transaccin exitosa"; } En el cdigo anterior se ven 2 inserciones que se realizarn (COMMIT) si no ocurre ningn error en las dos, en caso contrario se regresarn sus valores anteriores (ROLLBACK).

You might also like