2011-10-21 3 views
0

Avec cette requête php/mysql:Erreur de syntaxe MySQL avec INSERT simple?

mysql_query("INSERT INTO Follows (User, Following, Type) VALUES ('$_COOKIE[user]', '$genre', 'Genre'") 

Je reçois l'erreur de syntaxe

« Vous avez une erreur dans votre syntaxe SQL; vérifier le manuel qui correspond à votre version du serveur MySQL pour la syntaxe droite à utiliser près de '' à la ligne 1 "

Je ne vois rien de mal à cette syntaxe. Est-ce que quelqu'un d'autre?

+0

Cela dépend de ce que les valeurs de ces variables sont ... vous devriez vraiment leur échapper –

+2

Entre autres préoccupations, vous manquez la désinence ')' 'pour VALUES' –

+1

Sérieusement ?! Nous sommes en 2011 et nous utilisons toujours l'interpolation de chaînes pour les requêtes SQL. – Phil

Répondre

6

Vous avez une parenthèse manquante:

mysql_query("INSERT INTO ... VALUES (... , 'Genre'") 

devrait être:

mysql_query("INSERT INTO ... VALUES (... , 'Genre')") 
               ^

Vous avez également une vulnérabilité d'injection SQL dans votre code. Utilisez mysql_real_escape_string ou des requêtes paramétrées. Connexes:

-1

L'erreur est que vous ne fermez pas votre déclaration MySQL avec le support correspondant.

vôtre:

mysql_query("INSERT INTO Follows (User, Following, Type) VALUES ('$_COOKIE[user]', '$genre', 'Genre'"); 

: Corriger

mysql_query("INSERT INTO Follows (User, Following, Type) VALUES ('$_COOKIE[user]', '$genre', 'Genre')"); 
+1

@Downvoter, s'il vous plaît être un homme et donnez-moi une explication. – Jules

0

Vous ne fermez pas votre dernière parenthèse dans la requête.

mysql_query("INSERT INTO Follows (User, Following, Type) VALUES ('$_COOKIE[user]', '$genre', 'Genre')") 
+0

Qui a downvoted cela? Pour quelle raison? – Mob