Ver Mensaje Individual
  #9 (permalink)  
Antiguo 29/04/2010, 08:33
Hidek1
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Dos queries en una?...

Cita:
Iniciado por fiu Ver Mensaje
creo que lo mejor es que hagas una transaccion,

así ademas de ejecutar varias consultas a la vez, te aseguras de que todas se ejecutan correctamente.

un ejemplo seria:

Código PHP:
Ver original
  1. $error = 0;
  2.  
  3. $sql = "BEGIN"; // inicias una transaccion
  4. $res = mysql_query($sql,$con);
  5. if(!$res) { $error = 1; echo mysql_error(); }
  6.  
  7. $sql = "INSERT INTO table_1 (id, ..."; // primera consulta
  8. $res = mysql_query($sql,$con);
  9. if(!$res) { $error = 1; echo mysql_error(); }
  10.  
  11. $sql = "UPDATE tabla SET campo=$valor WHERE ..."; // consulta 2
  12. $res = mysql_query($sql,$con);
  13. if(!$res) { $error = 1; echo mysql_error(); }
  14.  
  15. $sql = "UPDATE tabla2 SET campo=$valor2 WHERE ..."; // asi tantas como quieras
  16. $res = mysql_query($sql,$con);
  17. if(!$res) { $error = 1; echo mysql_error(); }
  18.  
  19. if($error==0) {
  20.         // si todas se han ejecutado, le dices a la bbdd que termine satisfactoriamente
  21.     $sql = "COMMIT";
  22.     $res = mysql_query($sql,$con);
  23.     echo "consultas ejecutadas.";
  24. }
  25. else {
  26.         // si algo ha fallado deshace todos los cambios que has hecho.
  27.     $sql = "ROLLBACK;";
  28.     $res = mysql_query($sql,$con);
  29.     echo "No se han podido ejecutar las consultas.";
  30. }
para eso necesitas que tus tablas sean compatibles... innoDB por ejemplo
(hace que las consultas sean mas lentas si)
__________________
More about me...
~ @rhyudek1
~ Github