Jan K.: Mysql Insert Fehler

Guten Tag,

ich habe gerade einen Fehler mit einer Mysql insert Query, den ich nicht verstehe. Vielleicht kann mir ja jemand von euch helfen...

mysql_query("INSERT INTO users (name,pw,email,key,activated) VALUES ('$Name','$PW','$eMail','$Key','0')") or die(mysql_error());

Soweit nichts großes, nicht ungewöhnliches. Sollte eigentlich richtig sein. Kommen tut aber immer:

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 'key,activated) VALUES ('lolz','098f6bcd4621d373cade4e832627b4f6','web@web.de','e' at line 1

Habe mal irgendwelche random Testwerte eingegeben und mir die zur Sicherheit auch noch mit var_dump() in php ausgeben lassen:

Name: lolz
PW: 098f6bcd4621d373cade4e832627b4f6
eMail: web@web.de
Key: e4af7c17be96d50f8de6bb6d7146c0d0

Was bitte mache ich falsch? Ich hab es unter anderem auch mal damit probiert bei 0 bei activated einfach die ' wegzumachen.  Bringt alles nichts.

Vielen Dank!

  1. Tach!

    mysql_query("INSERT INTO users (name,pw,email,key,activated) VALUES ('$Name','$PW','$eMail','$Key','0')") or die(mysql_error());
    Soweit nichts großes, nicht ungewöhnliches. Sollte eigentlich richtig sein. Kommen tut aber immer:

    Ein 'or die()' ist eigentlich nie richtig und der (anscheinend) nicht beachtete Kontextwechsel ebensowenig. Aber abgesehen davon,

    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 'key,activated) VALUES ('lolz','098f6bcd4621d373cade4e832627b4f6','web@web.de','e' at line 1

    hast du das reservierte Wort key als Spaltennamen verwendet. Das ist kein Problem weiter, nur musst du es dann mit Backticks quoten.

    dedlfix.

    1. hast du das reservierte Wort key als Spaltennamen verwendet.

      Auf Kontextwechsel habe ich schon geachtet, das war nicht das Problem. Ich wusste einfach nicht, dass key tatsächlich ein reserviertes Wort ist in mysql und hab da überhaupt nicht drauf geachtet, sondern lediglich die ganze Zeit rätselnd vor der Syntax gesessen und mich gefragt was daran bitte falsch sein soll.

      Vielen Dank!

      1. Moin!

        hast du das reservierte Wort key als Spaltennamen verwendet.

        Auf Kontextwechsel habe ich schon geachtet, das war nicht das Problem.

        Was hast du dafür gemacht? Und warum war davon in deiner Zeile nix zu sehen, obwohl es genau DORT darauf ankommt, nirgendwo anders.

        - Sven Rautenberg