[PHP][MySQL] Pb stupide : retour chariot

Pb stupide : retour chariot [PHP][MySQL] - PHP - Programmation

Marsh Posté le 25-03-2005 à 20:50:36    

J'ai une erreur dans ma requete, et d'après ce que j'ai compris c'est parce que y'a pas de retour chariot entre les requete
J'ai essayé avec \n et chr(10) mais ça marche pas...
 

Code :
  1. $sql = 'INSERT INTO comments([...]) VALUES ([...]);
  2. UPDATE posts SET [...] WHERE [...];
  3. '.$base->log([...]);


 

Citation :

Fatal error: Uncaught exception 'Exception' with message 'query You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; UPDATE posts SET [...] WHERE [...]; ' at line 1' in

Reply

Marsh Posté le 25-03-2005 à 20:50:36   

Reply

Marsh Posté le 25-03-2005 à 21:06:46    

es tu bien sûr que MySQL accepte de faire deux requetes à la fois ??

Reply

Marsh Posté le 25-03-2005 à 21:20:54    

Euh, bah je pense non ? Tu me fais douter maintenant :lol:
Quand j'ai vu des trucs comme ci-dessous (tiré de la doc nexen) j'en ai déduit que ça se faisait en une seule requete, donc je pense que oui :??:
 

Code :
  1. START TRANSACTION;
  2. SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
  3. UPDATE table2 SET summmary=@A WHERE type=1;
  4. COMMIT;


Reply

Marsh Posté le 25-03-2005 à 21:30:32    

Euh, oui, c'est bien les exemples, mais c'est encore mieux quand on les comprend :D
 
Une transaction (l'exemple) c'est pas la même chose que passer 2 instructions à mysql en même temps :)

Reply

Marsh Posté le 25-03-2005 à 21:38:13    

Ah, ok [:barome]
Alors selon vous comment je devrais faire ?

Reply

Marsh Posté le 26-03-2005 à 09:46:08    

Y'a pas un moyen de rassembler plusieurs requetes en une seule ? :??:

Reply

Marsh Posté le 26-03-2005 à 14:43:42    

si, en utilisant les transactions, mais ça varie suivant la version de mysql et le type de table (je sais qu'en InnoDb ça fonctionne, mais MyIsam ça m'étonnerait par exemple)

Reply

Marsh Posté le 26-03-2005 à 15:54:06    

J'utilise mysql 4.5 et une table InnoDB

Reply

Marsh Posté le 26-03-2005 à 16:08:49    

Note que j'ai jamais fais le test avec php et mysql, mais j'ai quand même un doute sur la réussite d'un code du style

Code :
  1. $sql = "start transaction;select @somme := sum(prix) from article where qty = 0;insert into kkwet values (@somme);commit;";
  2. mysql_query($sql);


 
je penche plutôt pour plusieurs mysql_query d'une seule instruction qui ne seront toutes exécutées par le serveur que lors du mysql_query('commit;'). A vérifier :)

Reply

Marsh Posté le 26-03-2005 à 16:41:26    

Jva faire le test ce soir :jap:

Reply

Marsh Posté le 26-03-2005 à 16:41:26   

Reply

Marsh Posté le 26-03-2005 à 17:36:46    

c'est pas tres bon de procéder ainsi : si t'as un lot de requete et qu'une seule foire, tu auras du mal à savoir laquelle

Reply

Marsh Posté le 26-03-2005 à 18:15:46    


faut pas s'arreter a ca...
c'est tres utile les transactions
 
on t'a jamais parler du syndrome de la tasse de café !


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 26-03-2005 à 19:01:01    


 
Moui, c'est même pas sûr, si c'est plusieurs mysql_query consécutifs, je ne sais pas trop quand à lieu la vérif de l'instruction...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed