Foros del Web » Programando para Internet » PHP »

Como me puedo asegurar de que una sentencia Sql fue realizada¿?

Estas en el tema de Como me puedo asegurar de que una sentencia Sql fue realizada¿? en el foro de PHP en Foros del Web. Bueno la cuestion es asi!!!! La sintaxis sql es un insert entonces lo que quiero hacer es; como saber si el insert logro registrar algo ...
  #1 (permalink)  
Antiguo 23/08/2007, 09:45
Avatar de jeanki  
Fecha de Ingreso: julio-2007
Mensajes: 59
Antigüedad: 16 años, 9 meses
Puntos: 0
Pregunta Como me puedo asegurar de que una sentencia Sql fue realizada¿?

Bueno la cuestion es asi!!!!


La sintaxis sql es un insert entonces lo que quiero hacer es; como saber si el insert logro registrar algo en la tabla!!

Quiero hacer esto por que dependiendo de que este insert se realize o no yo modificare un dato en otra tabla!.


No se si me entienden¿?¿?!!!

Código PHP:
    <?

$ssql
=mysql_query("insert into ssi.ssi_mae_orde 
        (cod_emp_ord, cod_tord,cod_emp_res,fec_ord,hor_ord, est_ord, prd_ord, nro_req,obs_ord)
         values ('$jefe','$des','$per_res', '$fecha','$hora','Abierta','$prio',$nro,'$obs') "
,$cnn);

//Luego sigue el cambio del dato si se ejecuta lo anterior!!!

$sql1=mysql_query("update ssi.ssi_mae_requ set
        est_req='Asignado' where nro_req=$nro"
,$cnn);

?>
  #2 (permalink)  
Antiguo 23/08/2007, 09:59
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: Como me puedo asegurar de que una sentencia Sql fue realizada¿?

HOLA agregale estas lineas a tu codigo:

$sql1="update ssi.ssi_mae_requ set
est_req='Asignado' where nro_req=$nro";
$res=mysql_query($sql1)or die('Consulta fallida: ' . mysql_error());


Salu2
__________________
"Eres grande por que caminas entre gigantes"
  #3 (permalink)  
Antiguo 23/08/2007, 10:43
Avatar de 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
Re: Como me puedo asegurar de que una sentencia Sql fue realizada¿?

Tambien aparte de lo que te recomienda ferbux, es mejor para eso usar mysql_affected_rows para que sepas que si se inserto 1 fila, y tambien es mejor usar Transacciones para este tipo de secuencias donde si una falla debes de hacer un rollback.

Saludos.
  #4 (permalink)  
Antiguo 23/08/2007, 12:25
Avatar de jeanki  
Fecha de Ingreso: julio-2007
Mensajes: 59
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Como me puedo asegurar de que una sentencia Sql fue realizada¿?

Ese affected_rows es parecido al num_rows¿?¿?¿?


Transacciones?¿? no entiendo muy bien eso y a que te refieres con rollback¿?¿


Me podria mostrar un jemplo con codigo para entender mejor?¿?¿

Última edición por jeanki; 23/08/2007 a las 12:32
  #5 (permalink)  
Antiguo 23/08/2007, 12:38
Avatar de 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
Re: Como me puedo asegurar de que una sentencia Sql fue realizada¿?

Con la funcion mysql_affected_rows te devuelve el numero de filas que fueron afectadas por tu consulta mas reciente, es decir si es un INSERT el numero de filas afectadas es 1.

Te recomiendo leas sobre Transacciones en Google, es creo lo ideal para lo que necesitas, la teoria es que desde que tu inicias una transaccion, si hay cualquier problema haces un ROLLBACK y todo se queda igual que antes de la transaccion.

Saludos.
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




La zona horaria es GMT -6. Ahora son las 02:30.