2014-06-30 5 views
0

Quelqu'un peut-il me dire où je me trompe avec ma demande?Erreur de syntaxe PHP/Mysql avec insertion

$sql = "INSERT INTO order (order_id,prod) VALUES ('','".$prod."')"; 
mysql_query($sql) or die ('Error SQL !'.$sql.'<br />'.mysql_error()); 
$_SESSION['orderid']=mysql_insert_id(); 

Voici ma configuration de table:

Colonnes order Table:

'order_id'=>int(11) auto_increment 
'prod'=> varchar(20) utf8_general_ci 

Et ceci est le message d'erreur:

erreur SQL INSERT INTO commande (order_id , prod) VALUES ('', 'xxx') Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser à proximité 'ordre (order_id, prod) VALUES (' ' 'xxx')' à la ligne 1

Merci

+0

Veuillez regarder dans PDO ou MySQLi pour la gestion de base de données. MySQL est obsolète maintenant –

+0

En outre, l'affichage de la valeur de $ prod aidera :) –

+0

il est posté dans le message d'erreur (c'est: xxx) – Baylock

Répondre

2

ORDER est un mot clé réservé et se trouve être le nom de votre colonne/table. Pour éviter une erreur de syntaxe, vous devez l'échapper à l'aide du backtick. par exemple,

`ORDER` 

Si vous avez le privilège de modifier la table, changer le nom de la table qui n'est pas un mot-clé réservé pour éviter les problèmes de se produire à nouveau.

Waring:Please, don't use mysql_* functions in new code. Ils ne sont plus maintenus and are officially deprecated. Voir le ? Renseignez-vous sur la place prepared statements, et utiliser PDO ou MySQLi-this article va vous aider à décider. Si vous choisissez PDO, here is a good tutorial.

+0

Merci, c'était tout – Baylock

1

Essayez ceci:

INSERT INTO `order` (order_id,prod) VALUES ('','".$prod."') 
1

remplacer avec cela, il suffit d'utiliser les guillemets simples avec le nom de la table

$sql = "INSERT INTO `order` (order_id,prod) VALUES ('','".$prod."')"; 
0

$ insert = "INSERT INTO order (order_id, prod) VALUES ('', » ". $ prod." ') ";