PHP - begin transaction

   
Vista:

begin transaction

Publicado por zendi (824 intervenciones) el 10/09/2013 18:06:24
buen dia a todos. Estoy intentando actualizar dos tablas simultaneamente con update, y me dicen que debo hacerlo con begin transaction.
Pero quisiera aplicarlo y no se como realizarlo.
les agradezco.
este es el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
$connect = pg_connect("host=172.16.4.9 port=5432 dbname=equipos user=administrador password=Infor*FEDE2013");
	$bina = $_POST['bina'];
    $idequipo = $_POST['idequipo'];
	$nombreEquipo = $_POST['cmbequipo'];
	$serial = ucfirst(strtolower($_POST['serial']));
	$marca = $_POST['cmbmarca'];
	$modelo = $_POST['cmbmodelo'];
	$unidad = $_POST['cmbunidad'];
	$observacion = ucfirst(strtolower($_POST['observacion']));
	$diagnostico = ucfirst(strtolower($_POST['diagnostico']));
	$fecha = $_POST['fecha'];
        $anio =substr($fecha,6,4);
        $mes  =substr($fecha,3,2);
        $dia = substr($fecha,0,2);
        $todo = $anio."-".$mes."-".$dia;
	$frecuencia = $_POST['cmbfrecuencia'];
	$status = $_POST['cmbstatus'];
/////////////
 
    $modifica2 = "UPDATE public.datos_equipos SET id_equipo = '$nombreEquipo',
	                    serial_equipo = '$serial',
					    id_marca = '$marca',
					    id_modelo = '$modelo',
					    id_unidad = '$unidad',
    					observacion = '$observacion',
	    				diagnostico = '$diagnostico',
		    			fecha_reparacion = '$todo',
			    		id_frecuencia = '$frecuencia',
				    	id_status = '$status'
			  	  WHERE bina = $bina";
                  @pg_query($connect,$modifica2);
 
if ($modifica2){
				  echo "<script type='text/javascript'>
				 alert('El registro fue MODIFICADO......');
				 window.location='reportebina.php';
				 </script>";
			  }
/////////////			  
    $modifica = "UPDATE public.reparados SET id_equipo = '$nombreEquipo',
	                    serial_equipo = '$serial',
					    id_marca = '$marca',
					    id_modelo = '$modelo',
					    id_unidad = '$unidad',
    					observacion = '$observacion',
	    				diagnostico = '$diagnostico',
		    			fecha_reparacion = '$todo',
			    		id_frecuencia = '$frecuencia',
				    	id_status = '$status'
			  	  WHERE id = $idequipo";
                  @pg_query($connect,$modifica);
if ($modifica){
				  echo "<script type='text/javascript'>
				 alert('El registro fue MODIFICADO');
				 window.location='reportebina.php';
				 </script>";
			  }
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

begin transaction

Publicado por xve (5522 intervenciones) el 11/09/2013 07:39:44
Hola Zendi, la verdad es que yo siempre lo he utilizado en un procedimiento almacenado, nunca en una instrucción directamente.

Mira en esta página veras unos ejemplos muy sencillos para que te hagas una idea:
http://www.tutorialspoint.com/postgresql/postgresql_transactions.htm

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

begin transaction

Publicado por zendi (824 intervenciones) el 12/09/2013 02:54:07
estuve leyendo el enlace pero sigo sin entender la sintaxis, y me disculpan mi lentitud.
saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

begin transaction

Publicado por Elier (92 intervenciones) el 12/09/2013 18:43:59
Para iniciar una nueva transaccion tienes que usar BEGIN WORK

pg_query($db, "BEGIN WORK");

$consulta1 = "UPDATE...";

$consulta2 = "UPDATE...";


$res1=pg_query($db, $consulta1);

$res2=pg_query($db, $consulta2);


if ($res1 and $res2) {
pg_query($db, "COMMIT");
} else {
pg_query($db, "ROLLBACK");
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar