Erreur MySQL - “Vous avez une erreur dans votre syntaxe SQL”
Le message d'erreur que j'ai obtenu:
Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre versions du serveur MySQL pour la bonne syntaxe à utiliser près de "mot",'groupe','selfnote') VALUES ('item','a','note')' à la ligne 1
Le code PHP:
$toq="INSERT INTO articles ('word','group','selfnote')
VALUES ('$ttle','$wrdr','$snote')";
J'essayais de trouver des solutins, mais ils n'ont pas l'air de fonctionner comme en écho donne:
INSERT INTO articles ('word','group','selfnote')
VALUES ('item','a','note to self')
qui semble agréable pour moi. Quel est le problème?
Avez-vous essayé de courir exactement la même requête dans phpMyAdmin?
Il a donné une erreur, trop.
Obligatoire remarque:
Il a donné une erreur, trop.
Obligatoire remarque:
mysql_real_escape_string()
vos données, d'autre Mauvaises Choses se produire, par exemple, lorsque $snote == "It's simple"
.OriginalL'auteur axiomer | 2012-01-29
Vous devez vous connecter pour publier un commentaire.
Utilisation backticks
`
à la place des guillemets'
pour échapper à des noms. Les citations sont les délimiteurs de chaînes.OriginalL'auteur juergen d
Vous ai mis des guillemets sur vos noms de domaine. Que les forces de MySQL à les traiter comme des chaînes de caractères, pas des noms de champ et vous ne pouvez pas insérer dans les chaînes.
est la syntaxe correcte. La seule citant type autorisé sur les noms de champ est l'utilisation de backticks pour échapper mot réservé domaines, comme par exemple
échoué en raison de l'utilisation de 3 mots réservés, mais l'ajout de backticks
rend acceptable que fieldnames.
group
. (Je ne sais pas si c'est acceptable dans ce contexte particulier, ou pas.)OriginalL'auteur Marc B
Vous ne devriez pas citer de noms de colonne avec la normale de citations (
''
), plutôt, utilisez backticks (``
).qu'ils sont appelés backticks?
Manuel MySQL semble le penser; je ne peux pas penser à une plus grande autorité de la ressource: "L'identificateur de caractère de guillemet est le backtick (“`”)". dev.mysql.com/doc/refman/5.0/en/identifiers.html
OriginalL'auteur Madara Uchiha
Vous devez supprimer ou remplacer les guillemets les noms de colonne par backticks (`). Depuis le "groupe" est un mot-clé, vous devez utiliser des backticks:
OriginalL'auteur Bruno Silva