PHP Problem beim eintragen in eine Datenbank

Andreasb.

Lt. Junior Grade
Registriert
Jan. 2011
Beiträge
271
Ich habe seit längerer Pause mal wieder mit PHP angefangen und hab jetzt schon Probleme damit:

Ich habe versucht einen Eintrag in eine MySQL Datenbank mit PHP zu machen:
PHP:
$eintrag = "INSERT INTO names (name, password, mail) VALUES ('$name_new', '$password_new', '$mail_new')"; 
$eintragen = mysql_query($eintrag);

Jetzt kommt mit mysql_error() folgende Meldung:
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 'mail) VALUES ('versuch', 'test', 'test')' at line 1

Wenn ich den Teil mit mail rausnehme dann funktioniert alles.
 
"INSERT INTO names (name, password, mail) VALUES ('$name_new', '$password_new', '$mail_new');"

wäre meine idee
 
setz mal ein echo mysql_error(); nach den query
 
ja das Feld existiert, aber da sind noch ein paar zwischen mit denen nichts passieren soll.
Das mit ; umstellen hat nicht geklappt.
Wenn ich das mysql_error() umstelle kommt die selbe Meldung.
 
Mit mysql_error() solltest eine detailreichere Auskunft über das Problem bekommen
 
muss er nich, mach ich auch nie ^^ (auch wenn ichs mir mal angewöhnen könnte)
 
Das hat funktioniert, aber komisch das es funktioniert hat als ich es nur mit name und password versucht habe, mich wunderts auch grade^^
 
"password" ist eine Mysql Funktion und muss daher in Backticks stehen, wenn es als Spaltenname herhalten soll!

Gruß
waYan
 
Ich hatte mal Probleme, als eine Spalte "Set" hieß und ich versucht habe da was reinzuschreiben ohne die `` zu verwenden. MySQL macht da wohl bei reservierten Schlüsselwörtern Probleme, deswegen ists wohl besser sich das mit `` gleich anzugewöhnen. Aber mail ist ja eigentlich kein MySQL-Schlüsselwort, oder?
 
Ich hatte das Problem auch schon paar mal. Während ich früher Feldnamen nie in `` gesetzt habe, hat das jetzt bei neueren Projekten öfter zu Fehlern geführt. Seit dem nutz ich die `` immer.
 
Ok, dann danke für eure Hilfe, ich werde mir das dann auch mal angewöhnen.
 
Zurück
Oben