• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MySQL Error no. 1064 - warum?!

T

toney

Guest
Hallo @ all,

ich versuche gerade einen simplen Datensatz in meine mySQL Datenbank zu schreiben, aber mir wird immer folgender Fehler gemeldet:

1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'long, title, user, date, time) VALUES ('7X38S', 'dscdscsd', 'title', 'user', '20' at line 1

mein Query:
PHP:
mysql_query("INSERT INTO shorten (short, long, title, user, date, time) VALUES ('$short', '$long', '$title', '$user', '$date', '$time')");

Die Variablen sind alle definiert, das habe ich nun zum gefühlten 1.000sten Mal überprüft. Die Tabelle existiert natürlich auch. Ich fange langsam an zu verzweifeln, weil ich nicht kapiere, wo der Fehler liegt. Bin für jede Hilfe dankbar...


Gruß,
toney
 
Werbung:
Ich empfehle folgendes Vorgehen:
1) SQL-Statement in PHPMyAdmin ausprobieren
2) SQL-Statement in PHP mit Variablen zusammensetzen und per Echo ausgeben
 
Vielen Dank für deine Antwort.

Habe eben beides probiert:
1) SQL-Statement in PHPMyAdmin ausprobieren
-> bewirkte genau den gleichen Fehler.
2) SQL-Statement in PHP mit Variablen zusammensetzen und per Echo ausgeben
-> Variablen werden problemlos und korrekt ausgegeben

Zum selbst ausprobieren:
URL Shortener
Nach dem Absenden sind unter dem neu generierten Link zum Test die abgesendeten Variablen-values zu sehen.
 
Werbung:
1) SQL-Statement in PHPMyAdmin ausprobieren
-> bewirkte genau den gleichen Fehler.
Na ja, dann würde ich erstmal den Fehler beseitigen. Offensichtlich übergibst Du einen Value nicht in korrekter Form. Vielleicht nur die Hochkommas beim Text vergessen?
-> Variablen werden problemlos und korrekt ausgegeben
Nicht die einzelnen Variablen, sondern das ganze Statement am Stück ausgeben. Das kannst Du dann mit dem funktionierenden Statement vergleichen.
 
long ist ein SQL-Befehl und sollte somit nicht für Spaltenzeichnungen verwendet werden. Wenn Du sie doch nutzen willst, umgib diese Spaltennamen mit Backticks:

Code:
 .. `long` ..
 
Oh man...
Vielen Dank, threadi, funktioniert nun.

@ achtelpetit: Sorry, falsch verstanden. Danke auch dir ;)
 
Werbung:
Statt singel Quote ('$short') Backticks verwendet ( `$short` )

shorten (besser Tabellenname und Feldname) sollte ebebenfalls gebackticked werden.
 
Ja, Tabellen- und Feldnamen, also Bezeichner, ruhig konsequent „backticken“, Strings gehören in normale Anführungszeichen.
 
Werbung:
Werbung:
Zurück
Oben