Foros del Web » Programando para Internet » PHP »

Problemas Con Rollback

Estas en el tema de Problemas Con Rollback en el foro de PHP en Foros del Web. Hola tengo un problema al hacer un ROLLBACK......... quiero que si una de las 2 transacciones no se realiza, se haga el ROLLBACK........... pero en ...
  #1 (permalink)  
Antiguo 19/05/2008, 10:26
 
Fecha de Ingreso: mayo-2008
Mensajes: 20
Antigüedad: 15 años, 11 meses
Puntos: 0
Problemas Con Rollback

Hola tengo un problema al hacer un ROLLBACK......... quiero que si una de las
2 transacciones no se realiza, se haga el ROLLBACK........... pero en este caso, en el ejemplo abajo..... se hace la primera, la segunda no se ejecuta....pk yo altere el nombre de la tabla......... pero el ROLLBACK no se ejecuta........ y la primera sentencia se ejecuta afectano la tabla contactos, la idea segun este codigo es ke no suceda nada en la tabla.........AYUDENME!!!!!!!!!!!!!!!!!

Gracias!!!

<?php


include "conexion.php";


$error = 0; //variable para detectar error

mysql_query("BEGIN",$conexion); // Inicio de Transacción


$result = mysql_query("INSERT INTO contactos(nombres) VALUES('andres')",$conexion);

if(!$result)
$error=1;


$result = mysql_query("INSERT INTO 2contactos(nombres) VALUES('mario')",$conexion);

if(!$result)
$error=1;

if($error) {
mysql_query("ROLLBACK",$conexion);
echo "Error en la transaccion";
} else {
mysql_query("COMMIT",$conexion);
echo "Transacción exitosa";
}



?>
  #2 (permalink)  
Antiguo 19/05/2008, 10:58
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Respuesta: Problemas Con Rollback

Hola fercp

te falta igualar $error a 1 quedaria asi:

f($error==1) {
mysql_query("ROLLBACK",$conexion);
echo "Error en la transaccion";
} else {
mysql_query("COMMIT",$conexion);
echo "Transacción exitosa";
}
  #3 (permalink)  
Antiguo 19/05/2008, 12:02
 
Fecha de Ingreso: mayo-2008
Mensajes: 20
Antigüedad: 15 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Problemas Con Rollback

Amigo tienes razon, pero ademas tenia que cambiar el tipo de tabla de MyISAM a InnoDB............ para poder realizar las transacciones.

Para ello tuve que modificar el archivo C:\AppServ\MySQL\My.ini colocarle un # para comentar la linea "skip-innodb" y asi lograr que Windows habilitara las bd tipo InnoDB.


Gracias!!!
  #4 (permalink)  
Antiguo 19/05/2008, 12:03
 
Fecha de Ingreso: mayo-2008
Mensajes: 20
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problemas Con Rollback

Efectivamente Solucionado - Gracias Al Equipo Forosdelweb!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:01.