Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/06/2006, 08:59
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Amigo, en las transacciones explicitamente tienes que usar ROLLBACK, para deshacer los cambios, si no la base de datos piensa que todo fue exitoso (a menos que haya un error), y hace el commit, prueba lo que sigue:
Código PHP:
//-------------------------------------------------------------------------
// me conecto a la db1
$db_link1 mysql_connect("localhost","root","");
mysql_select_db("db_1",$dbl_link1);

// ahora me conecto a la db2
$db_link2 mysql_connect("localhost","root","");
mysql_select_db("db_2",$db_link2);

// ahora hago el query en la db_1 poniéndolo dentro de una transaccion, y la //cierro cuando tambien haya hecho el query del db2


// query db_1
mysql_query("BEGIN",$db_link1);
mysql_query("INSERT INTO clientes (nombre,apellido) VALUES ('Fulano','Jaramillo')",$db_link1);


//ahora hago el query para el db_2 dentro de su respectiva transacción
mysql_query("BEGIN",$db_link2);
$x mysql_query("INSERT INTO clientes (nombre,apellido) VALUES ('Fulano','Jaramillo')",$db_link2);

// si ocurre un error en el query, paro el script osea que no se hace el commit,  
// por lo tanto no se puede hacer ni el query 1 ni el dos
if(!x){
 
mysql_query"ROLLBACK"$db_link2 );
 exit();
}

mysql_query("COMMIT",$db_link1);
mysql_query("COMMIT",$db_link2);
//-------------------------------------------------------------------------