MySQL-Fehler - "Sie haben einen Fehler in Ihrer SQL-syntax"
Die Fehlermeldung bekam ich:
Haben Sie einen Fehler in Ihrer SQL-syntax; Lesen Sie im Handbuch, das entspricht Ihrer MySQL-server-version für den richtigen syntax zur Verwendung in der Nähe von "Wort','Gruppe','selfnote') VALUES ('item','a','note to self')' at line 1
Den PHP-code ist:
$toq="INSERT INTO articles ('word','group','selfnote')
VALUES ('$ttle','$wrdr','$snote')";
Ich war auf der Suche solutins, aber Sie schien nicht zu arbeiten als echo gibt:
INSERT INTO articles ('word','group','selfnote')
VALUES ('item','a','note to self')
scheint nett zu mir. Was ist das problem?
- Haben Sie versucht, läuft die genau die gleiche Abfrage in phpMyAdmin?
- Es gab einen Fehler zu.
- Obligatorischer Hinweis:
mysql_real_escape_string()
Ihre Daten, andere Schlechte Dinge von werden passiert, z.B. wenn$snote == "It's simple"
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden backticks
`
anstelle von Anführungszeichen'
zu entkommen-Namen. Zitate sind string-Begrenzungszeichen.Hast du Anführungszeichen auf dem Feld-Namen. Das zwingt MySQL zu behandeln als strings, nicht-Feld-Namen - und Sie kann sich nicht einfügen in strings.
ist die korrekte syntax. Den nur zitiert Typ erlaubt auf Feld-Namen ist die Verwendung von backticks zu entkommen reserviert word-Felder, z.B.
scheitern würden, durch den Einsatz von 3 reservierte Wörter, aber das hinzufügen backticks
macht Sie akzeptabel als Feldnamen.
group
. (Ich weiß nicht, ob es akzeptabel ist in diesem bestimmten Kontext oder nicht.)Sollte man nicht zitieren, Spaltennamen mit normalen Anführungszeichen (
''
), verwenden Sie stattdessen backticks (``
).Müssen Sie entfernen oder ersetzen Sie die Anführungszeichen mit den Spaltennamen durch backticks (`). Da die "Gruppe" ist ein Schlüsselwort, verwenden Sie die backticks: