SQL syntax error dans fonction insert into [Résolu/Fermé]

Signaler
Messages postés
16
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
24 juin 2008
-
Messages postés
16
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
24 juin 2008
-
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

Messages postés
3656
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
20 novembre 2020
975
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
16
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
24 juin 2008
2
Super ça marche!!!

Merci beaucoup Xavier, ça fait deux semaines que je suis dessus!!!
Il faut que j'aille fêter ça...
Messages postés
3656
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
20 novembre 2020
975
Bonjour,

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

ça donne quoi ?

Xavier
Messages postés
16
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
24 juin 2008
2
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
Messages postés
16
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
24 juin 2008
2
Meme problème en rajouter des quotes partout!!