SQL syntax error dans fonction insert into

Résolu/Fermé
scarfesse Messages postés 16 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 24 juin 2008 - 19 déc. 2007 à 12:38
scarfesse Messages postés 16 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 24 juin 2008 - 20 déc. 2007 à 18:05
Bonjour,

Je suis bloqué depuis une semaine sur une supposée erreur de syntaxe dans une fonction insert into...
Moi je vois pas d'erreur avec mes yeux de débutants, mais peut être que quelqu'un voit une erreur...

Voila le code correspondant:


$query_insert = sprintf("INSERT INTO shop_line_order (order, article, price_ht, price_ttc, quantity, total_ht, total_ttc) VALUES (%s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($row_order['id'], "int"),
GetSQLValueString($row_basket['article'], "int"),
GetSQLValueString($row_basket['price_ht'], "double"),
GetSQLValueString($row_basket['price_ttc'], "double"),
GetSQLValueString($row_basket['Quantity'], "int"),
GetSQLValueString($row_basket['total_ht'], "double"),
GetSQLValueString($row_basket['total_ttc'], "double"));
mysql_select_db($database_shop, $shop);
$Result1 = mysql_query($query_insert, $shop) or die(mysql_error());

J'ai testé chacune des variables, la fonction getSQLvlauestring fait bien son boulot!!
Donc je ne sais pas d'ou ça vient.
S'il vous plait de l'aide parce que j'en peut plus de pietiner là!

Merci

5 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
20 déc. 2007 à 17:36
Bonjour,

Le problème vient du fait qu'un de tes noms de colonnes, « order », est un mot réservé en SQL !
Pour éviter ça, il faut lui mettre des apostrophes inversées : ` (symbole que tu trouves par la combinaison ([Alt Gr] + [7]), ou si tu n'y arrives pas, en copiant collant la caractère)
Donc ta requête devient :
$query_insert = sprintf("INSERT INTO shop_line_order (`order`, article, price_ht, price_ttc, quantity, total_ht, total_ttc) VALUES (%s, %s, %s, %s, %s, %s, %s)",
    GetSQLValueString($row_order['id'], "int"),
    GetSQLValueString($row_basket['article'], "int"),
    GetSQLValueString($row_basket['price_ht'], "double"),
    GetSQLValueString($row_basket['price_ttc'], "double"),
    GetSQLValueString($row_basket['Quantity'], "int"),
    GetSQLValueString($row_basket['total_ht'], "double"),
    GetSQLValueString($row_basket['total_ttc'], "double"));
mysql_select_db($database_shop, $shop);
$Result1 = mysql_query($query_insert, $shop) or die(mysql_error()); 
En fait, tu peux même mettre ces ` autour de tous les noms de champ, c'est plus propre et évitera d'autres problèmes du même genre :)

Xavier
2
scarfesse Messages postés 16 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 24 juin 2008 2
20 déc. 2007 à 18:05
Super ça marche!!!

Merci beaucoup Xavier, ça fait deux semaines que je suis dessus!!!
Il faut que j'aille fêter ça...
1
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
19 déc. 2007 à 14:23
Bonjour,

Tu pourrais nous donner le message d'erreur ?
Et si tu fais
echo $query_insert;

ça donne quoi ?

Xavier
0
scarfesse Messages postés 16 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 24 juin 2008 2
20 déc. 2007 à 16:18
Salut Reivax962,

J'ai rajouté la fonction echo
Il m'a donné des valeurs qui étaient entre ', et d'autre non.
Ca venait de la fonction getSQLvaluestring.
Je sais pas si il les faut ou pas. je viens d'essayer sans. Ca ne marche pas. Je vais essayer d'en rajouter aux valeurs qui n'en ont pas pour voir.

Sinon le message d'erreur est le suivent


INSERT INTO shop_line_order (order, article, price_ht, price_ttc, quantity, total_ht, total_ttc) VALUES (169, 6, 233, 279, 1, 233, 279)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 'order, article, price_ht, price_ttc, quantity, total_ht, total_ttc) VALUES (169,' at line 2

Merci pour l'aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scarfesse Messages postés 16 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 24 juin 2008 2
20 déc. 2007 à 16:20
Meme problème en rajouter des quotes partout!!
0