MySql - Syntaxfehler - 1064

MySql - Syntaxfehler - 1064

am 22.06.2005 10:35:49 von thetwin

Hallo,

ich habe eine INSERT Anweisung geschrieben, bei der Ausführung jedoch
bekomm ich folgenden Fehler.

mysql_error()
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 'to, from, datum, titel, msg) VALUES('TheTwin', 'TheTwin', '22.0

mysql_errno()
1064

MySql Anweisung:
$sql = "INSERT INTO gbook(to, from, datum, titel, msg) VALUES('$to', '$from', '$datum', '$titel', '$msg')";
mysql_query($sql, $connect);

Wo liegt denn der Fehler?
Auch nach x-facher Prüfung finde ich keinen Fehler.

MfG
Sandro

Re: MySql - Syntaxfehler - 1064

am 22.06.2005 10:43:40 von Daniel Jaenecke

Sandro Paetzold schrieb:

> MySql Anweisung:
> $sql = "INSERT INTO gbook(to, from, datum, titel, msg) VALUES('$to', '$from', '$datum', '$titel', '$msg')";
> mysql_query($sql, $connect);

-snip-

Du solltest das fertige Statement ausgeben lassen (echo $sql) und
überprüfen. Ich vermute, eine der Variablen enthält zB ein
Anführungszeichen.
Möglicherweise möchtest Du Dir auch
http://www.php.net/mysql_real_escape_string ansehen.

Gruß
-dj-



--
Etwas nicht tun zu können ist kein Grund, es nicht zu tun.
[G. Shumway]

Re: MySql - Syntaxfehler - 1064

am 22.06.2005 10:49:43 von Christoph Reeg

thetwin@arcor.de (Sandro Paetzold) writes:

> Hallo,

Hallo,

> MySql Anweisung:
> $sql = "INSERT INTO gbook(to, from, datum, titel, msg) VALUES('$to', '$from', '$datum', '$titel', '$msg')";
^ da fehlt ein VALUES

> Wo liegt denn der Fehler?
> Auch nach x-facher Prüfung finde ich keinen Fehler.

Laut Fehlermeldung mußt der Fehler kurz vor dem to sein.


HTH,
Christoph


--
Christoph Reeg (http://reeg.net/)
BOFH excuse #372:

Forced to support NT servers; sysadmins quit.

Re: MySql - Syntaxfehler - 1064

am 22.06.2005 10:52:21 von Felix Holdener

thetwin@arcor.de (Sandro Paetzold) wrote in
news:42b922e4$0$1130$9b4e6d93@newsread4.arcor-online.net:

> Hallo,
>
> ich habe eine INSERT Anweisung geschrieben, bei der Ausführung jedoch
> bekomm ich folgenden Fehler.
>
> mysql_error()
> 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 'to, from, datum, titel, msg) VALUES('TheTwin', 'TheTwin', '22.0
>
> mysql_errno()
> 1064
>
> MySql Anweisung:
> $sql = "INSERT INTO gbook(to, from, datum, titel, msg) VALUES('$to',
> '$from', '$datum', '$titel', '$msg')"; mysql_query($sql, $connect);

Prüf doch mal, obs daran liegt, dass du reservierte Wörter (to, from,...)
verwendest:

http://dev.mysql.com/doc/mysql/en/reserved-words.html

hth

Felix

Re: MySql - Syntaxfehler - 1064

am 22.06.2005 11:09:35 von Axel Schwenke

thetwin@arcor.de (Sandro Paetzold) wrote:

> Wo liegt denn der Fehler?
> Auch nach x-facher Prüfung finde ich keinen Fehler.

> You have an error in your SQL syntax.
> near 'to, from, datum, titel, msg) ...
....
> $sql = "INSERT INTO gbook(to, from, datum, titel, msg)
^
Hier fehlt ein Leerzeichen |

MySQL interpretiert '(' als Aufruf der Funktion
was sowohl im umgebenden Kontext sinnlos ist als auch am
Nichtvorhandensein besagter Funktion scheitern dürfte.

Außerdem verwendest du das Schlüsselwort 'from' als Spalten-
name. Also entweder quoten oder (besser) ändern.


XL

Re: MySql - Syntaxfehler - 1064

am 22.06.2005 11:11:42 von Marian Heddesheimer

On Sun, 22 Jun 2005 8:35:49 GMT, Sandro Paetzold wrote:

>syntax to use near 'to, from, datum, titel, msg) VALUES('TheTwin', 'TheTwin', '22.0

aufgrund der Fehlermelung würde ich mal raten und glaube, dass dein
Datum im falschen Format ist. Könnte das sein?

Marian

--
Barrierefreie Online-Kurse: HTML, PHP, MySQL, Word, Excel
http://www.lernpilot.de/wbt/

Re: MySql - Syntaxfehler - 1064

am 22.06.2005 11:41:06 von Helmut Chang

Christoph Reeg schrieb:

>>MySql Anweisung:
>>$sql = "INSERT INTO gbook(to, from, datum, titel, msg) VALUES('$to', '$from', '$datum', '$titel', '$msg')";
>
> ^ da fehlt ein VALUES

Blödsinn.

gruss, heli

Re: MySql - Syntaxfehler - 1064

am 22.06.2005 11:54:49 von thetwin

[...]
Also es fehlen weder Leerzeichen, noch habe ich das Datum o.ä. falsch formatiert(!)
es war (wie Felix vermutete) das from von mysql reserviert ist und damit nicht als
Spaltenname genutzt werden kann!

MfG
Sandro

Re: MySql - Syntaxfehler - 1064

am 22.06.2005 12:11:30 von dev-null-use-reply-adress

Sandro Paetzold schrieb:
> [...]
> Also es fehlen weder Leerzeichen, noch habe ich das Datum o.ä. falsch formatiert(!)
> es war (wie Felix vermutete) das from von mysql reserviert ist und damit nicht als
> Spaltenname genutzt werden kann!

Schön, Du hattest die entsprechende Antwort aber bereits letzte Nacht
auf Dein erstes Posting in d.c.l.p.misc erhalten. Warum postet
Du Deine Frage also heute Vormittag nochmal in diese Gruppe.
Diese Gruppe wäre sicher von Anfang an passender gewesen. Aber wie
gesagt, Du hattest die richtige Antwort bereits.

Noch passender wäre übrigens gleich de.comp.datenbanken.mysql
gewesen, weil Dein Problem überhaupt nichts mit PHP zu tun hat.

Eines Deiner letzten Probleme ("Schleifenproblem") hattest Du auch
parallel in d.c.l.p.datenbanken und misc gepostet.

Mensch Sandro, bitte mal zukünfitig ein wenig mitdenken, nach
Möglichkeit in die richtige Gruppe posten, und niemals *ein* Problem
in mehrere Gruppen verteilen. Danke.


Gruß, JPM

Re: MySql - Syntaxfehler - 1064

am 22.06.2005 13:11:21 von Hartmut Holzgraefe

Marian Heddesheimer wrote:
>>syntax to use near 'to, from, datum, titel, msg) VALUES('TheTwin', 'The=
Twin', '22.0
>=20
>=20
> aufgrund der Fehlermelung würde ich mal raten und glaube, dass dein
> Datum im falschen Format ist. Könnte das sein?

Wo siest du da einen Bezug zu einem Datum?

Der Fehler liegt beim 'to', und das sagt die Fehlermeldung auch ganz
klar. 'to' und 'from' sind reservierte Worte und können nicht einfach
so als Spaltennamen benutzt werden.

--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

Re: MySql - Syntaxfehler - 1064

am 22.06.2005 13:12:28 von Hartmut Holzgraefe

Daniel Jaenecke wrote:
> Du solltest das fertige Statement ausgeben lassen (echo $sql) und
> überprüfen. Ich vermute, eine der Variablen enthält zB ein
> Anführungszeichen.

bitte nicht blind raten ;)

Die Fehlermeldung erfolgt deutlich schon weit vor der Werteliste,
von daher scheiden Probleme mit den Variablenwerten hier aus.


--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

Re: MySql - Syntaxfehler - 1064

am 22.06.2005 13:14:08 von Hartmut Holzgraefe

Felix Holdener wrote:
>>MySql Anweisung:
>>$sql =3D "INSERT INTO gbook(to, from, datum, titel, msg) VALUES('$to',
>>'$from', '$datum', '$titel', '$msg')"; mysql_query($sql, $connect);
>=20
>=20
> Prüf doch mal, obs daran liegt, dass du reservierte Wörter (to, fro=
m,...)
> verwendest:
>=20
> http://dev.mysql.com/doc/mysql/en/reserved-words.html

Richtig, 'to' und 'from' sind reservierte Worte und erfordern Quoting:

INSERT INTO gbook(`to`, `from`, datum, ...

Bitte beachten: das sind backticks ` keine einfachen Anführungszeichen =
'

--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

Re: MySql - Syntaxfehler - 1064

am 25.06.2005 16:56:40 von Peter Hansen

Sandro Paetzold schrieb:
> Hallo,
>
> ich habe eine INSERT Anweisung geschrieben, bei der Ausführung jedoch
> bekomm ich folgenden Fehler.
>
> mysql_error()
> 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 'to, from, datum, titel, msg) VALUES('TheTwin', 'TheTwin', '22.0
>
> mysql_errno()
> 1064
>
> MySql Anweisung:
> $sql = "INSERT INTO gbook(to, from, datum, titel, msg) VALUES('$to', '$from', '$datum', '$titel', '$msg')";
> mysql_query($sql, $connect);
>
> Wo liegt denn der Fehler?
> Auch nach x-facher Prüfung finde ich keinen Fehler.
>
> MfG
> Sandro
>
Hallo,
wenn du schon schreibst, dass ein Syntaxfehler vorliegt, wieso schreibst
du dann nicht das ganze vor dem Post mal in ordentlichem SQL und PHP? Du
hättest dann sicherlich die Frage hier erst garnicht stellen müssen!
Ordentlich wäre sowas wie gewesen:

$sql = "INSERT INTO `gbook`(`to`, `from`, `datum`, `titel`, `msg`)
VALUES('".$to."', '".$from."', '".$datum."', '".$titel."', '".$msg."')";

Mit einer einigermaßen konformen Schreibweise kannst du sehr viele
Fehler von vorne herein ausschließen.

MFG
Peter Hansen

Re: MySql - Syntaxfehler - 1064

am 25.06.2005 17:10:32 von Thomas Hamacher

Peter Hansen schrieb:
> Sandro Paetzold schrieb:

>> mysql_error() 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 'to, from, datum, titel, msg) VALUES('TheTwin', 'TheTwin', '22.0

> $sql = "INSERT INTO `gbook`(`to`, `from`, `datum`, `titel`, `msg`)
> VALUES('".$to."', '".$from."', '".$datum."', '".$titel."', '".$msg."')";

Das finde ich schlecht lesbar und es erfordert das Tippen von unnötigen
Sonderzeichen. Warum sollte man das *so* schreiben wollen?

$sql = "INSERT INTO gbook (`to`, ...) VALUES ('$to', '$from', ...)";

> Mit einer einigermaßen konformen Schreibweise kannst du sehr viele
> Fehler von vorne herein ausschließen.

ACK