2013-08-12 4 views
1

Je suis arrivé à cette demande:erreur de syntaxe mysql uniquement lorsqu'il est exécuté par php

"START TRANSACTION; DELETE FROM `awaiting_auth` WHERE `code` = '06b8465eed00727a1eac49fae89b88f876ded2eb' LIMIT 1; INSERT IGNORE INTO `prsn` SET `login` = 'new_user', `passwd` = '40bd001563085fc35165329ea1ff5c5ecbdbbeef', `color` = '#cbc5f2'; COMMIT;" 

Et je reçois cette erreur:

"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 'DELETE FROM awaiting_auth WHERE code = '06b8465eed00727a1eac49fae89b88f876de' at line 1".

Cependant lors de l'exécution sql via tout terminal passe bien et aucune erreur sont jetés .
Quel est le problème avec ma demande? Merci d'avance.

+0

Utiliser 'mysqli_error (conn $)' et voir ce que vous obtenez –

+2

comment vous exécutez ce en utilisant php? poster le code pertinent –

+0

merci les gars, c'était vraiment rapide! – zogby

Répondre

2

Vous devez scinder les requêtes en appels séparés -> query(). La console SQL le fait automatiquement. Par exemple.

->query("START TRANSACTION"); 
->query("DELETE FROM..."); 
0

Une opération par requête. Vous devez donc diviser votre requête en requêtes uniques.

0

Exécutez simplement ces requêtes une par une, pas dans un seul paquet.

0

Essayez d'exécuter chaque instruction de façon individuelle:

START TRANSACTION; 
DELETE FROM `awaiting_auth` WHERE `code` = '06b8465eed00727a1eac49fae89b88f876ded2eb' LIMIT 1; 
INSERT IGNORE INTO `prsn`(`login`, `passwd`, `color`) VALUES('new_user','40bd001563085fc35165329ea1ff5c5ecbdbbeef', '#cbc5f2'); 
COMMIT;