phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

PHP-Einfügung in MySQL-Syntaxfehler

TableNames sind Bezeichner und sollten daher nicht in einfache Anführungszeichen gesetzt werden. Da der von Ihnen verwendete Tabellenname kein reserviertes Schlüsselwort ist, können Sie diese Anführungszeichen einfach entfernen,

INSERT INTO student (FirstName, LastName....

Wenn Sie etwas in einfache Anführungszeichen setzen, wird dieses Objekt gezwungen, ein Zeichenfolgenliteral zu werden. Wenn also Bezeichner in einfache Anführungszeichen eingeschlossen werden, bedeutet dies, dass sie keine Bezeichner mehr sind.

Der Server löst eine Ausnahme aus, weil INSERT INTO erwartet einen Bezeichner, kein String-Literal.

Wenn Sie versehentlich einen Tabellennamen verwendet haben, der ein MySQL Reserved Schlüsselwort verwenden Sie keine einfachen Anführungszeichen, um den Bezeichner abzugrenzen, sondern backticks .

Als Nebenbemerkung ist die Abfrage mit SQL Injection angreifbar wenn der Wert (s ) der Variablen kam von außen. Bitte werfen Sie einen Blick auf den folgenden Artikel, um zu erfahren, wie Sie dies verhindern können. Durch die Verwendung von PreparedStatements Sie können die Verwendung von einfachen Anführungszeichen um Werte loswerden.