Autor Tema: como ejecutar dos sentencias a la vez [MySQL][PHP]  (Leído 8242 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Kibalam

  • The Communiter-
  • *
  • Mensajes: 1612
como ejecutar dos sentencias a la vez [MySQL][PHP]
« : mayo 06, 2010, 10:35:55 am »
Hola... Communiters...

vengo con una pequeña duda.. se que mas de alguno me va a querer dar un coscorrón  pero no se como hacer esto...  :phew:

resulta que quiero que cuando ingrese un registro a una tabla en otra se me actualice un contador..

al usar las sentencias unidas en MySQL se me resulta bien estas....
Código: [Seleccionar]
INSERT INTO clientes(id_cliente,nombre,apellido,direccion,email,cumple,pasaporte,movil,casa,trabajo,id_usuario,fecha_reg) VALUES( $id_cliente,'$nombre','$apellidos','$direccion','$correo','$fechacade','$pasaporte','$movil','$casa','$trabajo',$id_usuario,'$fecha_reg');update usuarios set num_registros = num_registros + 1 where id_usuario = $id_usuario

eso en la linea de comandos de MySQL se ejecuta perfectamente.. (claro que con los datos que son)...

pero al querer ejecutar eso en PHP en un solo query... no hace nada y me da un error  :-/

pienso que podría ser el ; pero en mi inventos le puse el \ antes de el ; y el mismo resultado..

Helpme please..  :embarassed:
"Esperar que la vida te trate bien porque seas buena persona es como esperar que un toro no te ataque porque seas vegetariano"

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re:como ejecutar dos sentencias a la vez [MySQL][PHP]
« Respuesta #1 : mayo 06, 2010, 10:40:27 am »
Que versión de MySql estas usando ?

Desconectado Kibalam

  • The Communiter-
  • *
  • Mensajes: 1612
Re:como ejecutar dos sentencias a la vez [MySQL][PHP]
« Respuesta #2 : mayo 06, 2010, 10:41:18 am »
MySQl 5.1.36
"Esperar que la vida te trate bien porque seas buena persona es como esperar que un toro no te ataque porque seas vegetariano"

Desconectado Camus de Acuario

  • The Communiter-
  • *
  • Mensajes: 8455
  • Ōrora Ekusukyūshon!
Re:como ejecutar dos sentencias a la vez [MySQL][PHP]
« Respuesta #3 : mayo 06, 2010, 10:44:41 am »
multi_query()

espero te sirva

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re:como ejecutar dos sentencias a la vez [MySQL][PHP]
« Respuesta #4 : mayo 06, 2010, 10:45:37 am »
Tenes la tabla en el Storage de InnoDB ?

Lo que pasa es que si es así tu mejor apuesta es usar los beneficios de transacciones.

Te aseguras de que tu primer insert sea satisfactorio y le das commit o haces rollback.

http://www.php.net/manual/en/mysqli.commit.php#88857

Desconectado Maitro...

  • The Communiter-
  • *
  • Mensajes: 2996
  • Maitrosoft ©®™
Re:como ejecutar dos sentencias a la vez [MySQL][PHP]
« Respuesta #5 : mayo 06, 2010, 10:48:47 am »

... cuando ingrese un registro a una tabla en otra se me actualice un contador..


sera que esto se puede solucionar con un trigger???

Citar
Un disparador es un objeto con nombre en una base de datos que se asocia con una tabla, y se activa cuando ocurre un evento en particular para esa tabla.


Citar
CREATE TRIGGER xxxx BEFORE INSERT ON xxx
...
..
.

Código: [Seleccionar]
http://dev.mysql.com/doc/refman/5.0/es/create-trigger.html

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re:como ejecutar dos sentencias a la vez [MySQL][PHP]
« Respuesta #6 : mayo 06, 2010, 10:51:16 am »
Si también tendría que funcionar, esque lo que da Camus es correcto, es suficiente para hacer 2 insert a la vez, pero ahora el punto sería asegurarte que el primero fue satisfactorio antes de aumentar el contador.

Desconectado Kibalam

  • The Communiter-
  • *
  • Mensajes: 1612
Re:como ejecutar dos sentencias a la vez [MySQL][PHP]
« Respuesta #7 : mayo 06, 2010, 10:51:49 am »
sera que esto se puede solucionar con un trigger???


Código: [Seleccionar]
http://dev.mysql.com/doc/refman/5.0/es/create-trigger.html

ya había pensado en el trigger he incluso lo intente.. pero tengo la complicación que le debo de pasar con referencia el ID de el Usuario.. así que pensé seria mas fácil con otra sentencia SQL y así fue.. en el MySQL todo nice a ejecutar las dos sentencias...

pero en el php me daba el problema..

voy a revisar las dos alternativas que me dieron ya.. le aviso como me fue.. :) 
"Esperar que la vida te trate bien porque seas buena persona es como esperar que un toro no te ataque porque seas vegetariano"

Desconectado Kibalam

  • The Communiter-
  • *
  • Mensajes: 1612
Re:como ejecutar dos sentencias a la vez [MySQL][PHP]
« Respuesta #8 : mayo 06, 2010, 11:20:34 am »
Ya... Utilice e multi_query() que dio Camus  :thumbsup:

ya hace las dos sentencias  :yahoo: y me hace el incremento despectivo :) la evaluó con el result de la función y si una no esta bien no hago la otra :) y salgo  :p
"Esperar que la vida te trate bien porque seas buena persona es como esperar que un toro no te ataque porque seas vegetariano"