2016-06-01 16 views
0

meine Web-Formular Einreichung (HTML-Datei in erhabenen Text zu Formular) eingegeben wurde nicht in meine SQL-Datenbank, nachdem ich beschlossen, eine ID-Spalte innerhalb meiner tatsächlichen Datentabelle hinzufügen. Es war mein Verständnis, dass Sie die ID nicht in die Werte-Klammer eingeben müssen, da dies automatisch geschieht. Weiß jemand, warum das passiert? Und wie kann ich es reparieren? Vielen Dank im Voraus. Ich bin ein Neuling.Web Formular Einreichung nicht in Datenbank

+0

Ich habe das Java-Tag zu Ihrer Frage hinzugefügt. Falls ich dies irrtümlich getan habe, können Sie es gerne entfernen. –

+0

@TimBiegeleisen danke! :) – episkeyyy

+0

Sind Sie sicher, dass der Benutzer 'root' in Ihrer MySQL-Datenbank kein Passwort hat? Schreiben Sie 'e.printStackTrace();' in den 'catch' Block und teilen Sie uns die Exception-Trace, die Sie bekommen. –

Antwort

1

Sie müssen einen Wert für die Spalte ID angeben, auch wenn es automatisch inkrementiert wird. Von dem MySQL documentation:

Wenn Sie nicht über eine Liste der Spaltennamen für INSERT ... VALUES oder INSERT ... SELECT, Werte für jede Spalte in der Tabelle angeben, muß von der VALUES-Liste zur Verfügung gestellt werden, oder die SELECT-Anweisung

Angenommen, Ihre person Tabelle hat die folgende Reihenfolge der Spalten

person (ID, name, birthday, address, gender, school) 

dann INSERT die Form sollte:

stmt.executeUpdate("INSERT INTO person VALUES (null, " + "' 
      + name + "','" + bday + "','" + address + "', '" 
      + gender + "','" + school + "')"); 

Hier bin ich vorbei null als der Wert der ID Spalte, zu dem MySQL einen Autoincrement-Wert zuweisen wird.

Beachten Sie, dass Sie vorbereitete Anweisungen verwenden sollten, da sie vor SQL-Injection schützen und Ihre Abfrage außerdem leichter lesbar machen.

+0

Ok, werde ich tun! Vielen Dank für Ihre Zeit! – episkeyyy

Verwandte Themen