Sei sulla pagina 1di 2

<?

php
02
$servidor = "miServidor";
03
$baseDatos = "miBaseDatos";
04
$usuario = "miUsuario";
05
$clave = "miClave";
06
07
$bd = mysql_connect($servidor, $usuario, $clave);
08
mysql_select_db($baseDatos, $bd);
09
10
$numDetalles = 10;
11
$idEncabezado = uniqid("enc_");
12
13
$error = 0;
14
15
// Iniciamos la transaccin para realizar dos un grupo de transaccione
s
16
mysql_query("BEGIN");
17
// Insertamos el encabezado.
18
$resultado = mysql_query("INSERT INTO t_encabezado(id_enc, valor_enc
) VALUES ('$idEncabezado', 23.3)");
19
if (!$resultado)
20
$error = 1;
21
22
if ($error == 1){
23
// Como ocurrio un error, entonces cancelamos toda la transaccin
,
24
// y dejamos todo igual hasta antes del BEGIN
25
mysql_query("ROLLBACK");
26
echo "Error en la Transaccin";
27
}
28
else{
29
// Como no hay error, entonces prosigamos insertando los detalle

s
30
for (int i = 0; i < $numDetalles; i++){
31
$idDetalle = uniqid("det_");
32
$resultado = mysql_query("INSERT INTO t_detalle(id_det, idEn
cabezado_det, desc_det) VALUES ('$idDetalle', '$idEncabezado'. 'El detalle')");
33
if ($resultado)
34
$error = 1;
35
}
36
if ($error == 1){
37
// Como ocurrio un error, entonces cancelamos toda la trans
accin,
38
// y dejamos todo igual hasta antes del BEGIN
39
mysql_query("ROLLBACK");
40
echo "Error en la Transaccin";
41
}
42
}
43
44
if ($error != 1){
45
// No hay error.
46
// Entonces con COMMIT aceptamos todos los movimientos
47
// y ya se reflejan en la Base de Datos.
48
mysql_query("COMMIT");
49
echo "Transaccin exitosa";
50
}
51
?>

Potrebbero piacerti anche