Los foros del Guille

Ya está a la venta Novedades de Visual Basic 9.0

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 
Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu interés (algunos de los avisos publicados)

12/mar/2008
Si quieres ver los mensajes que nadie ha contestado, puedes usar este link: http://foros.elguille.org/MensajesSinRespuestas.aspx
También lo tienes en la página de inicio.

  Foro: PHP.General Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 53984 - Transacciones con Mysqli
IDAsuntoFechaNick 
53984 Transacciones con Mysqli29/09/10 19:48Black   
Que tal alguien ha usado transaccione en mysql???

Lo que pasa es que hago insert en 2 tablas.. entonces si falla el insert en la segunda tabla, quiero hacer un rollback.. pero hasta ahorita no he encontrado nada.... aki les dejo el ejemplo...
cuando entra al segundo insert... marca error.. pero no me hace rollback, es decir el insert primero se queda insertado en la tabla

//FUNCIONES
function IniciarTransaccion()
{
mysqli_query("SET AUTOCOMMIT=0");
mysqli_query("BEGIN");
}
function Commit()
{
mysqli_query("COMMIT");
}
function RollBack()
{
mysqli_query("ROLLBACK");
}
function FinalizarTransaccion($conect)
{
mysqli_query("SET AUTOCOMMIT=1");
mysqli_close($conect);
}

//----------------------------------------------------------------------------------------------
//GUARDAR DATOS
//----------------------------------------------------------------------------------------------
$error=false;

$cn=Conectarse(); // Me conecto
IniciarTransaccion();

$stored="call spa_alumno('danillo', @prmOUT)";
if(!mysqli_query($cn, $stored)){
$error=true;
}else{
$sql="select @prmOUT;";
$trans=mysqli_query($cn, $sql);
$row=mysqli_fetch_array($trans);
$IdAlumno=$row[0];

$stored2="call spa_materia(9, 'matematicas')"; //aki lo puse para que truene y marq error y me genere rollback

if(!mysqli_query($cn, $stored2)){
$error=true;
}

}


if($error){
RollBack();
echo "Ocurrio un error ROLLBACK";
}else{
Commit();
echo "Datos insertados COMMIT";
}
FinalizarTransaccion($cn);

/-------------------------------------------------------------------------------------------



Saludos.

 
(c) Guillermo 'guille' Som, 2005-2017  - foros.elGuille v1.0.5.3 (23/Mar/2009 14:50 GMT +1)  - (ASP.NET 2.0 v2.0.50727.8762)
 
Usuarios activos: 126 - App. iniciada: 24/11/2017 1:38:24 GMT - La hora GMT del servidor es: 24/11/2017 03:33:00 GMT