2017-01-03 3 views
0

ich eine Datenbanktabelle mit 4 Spalten erstellt habenMySQL Syntax Error INSERT INTO und WHERE-Anweisungen

user , password , ipaddress , isVIP 

Ich möchte die Daten eingefügt werden, wo Benutzer ipAddress =? und Passwort =?

Ich habe versucht, mit diesen mySQL Syntax

PreparedStatement ps = con.prepareStatement("INSERT INTO login(ipaddress) VALUES(?) select * from login where user=? and password=?"); 
     ps.setString(1,ipaddress); 
     ps.setString(2,id); 
     ps.setString(3, password); 

Was es mir sagt, dass ich Syntaxfehler haben.

+0

Ich glaube, Sie suchen nach 'INSERT INTO Login (ip-adresse, Benutzer, Passwort) Werte' –

+0

Pflichtlektüre (?,?,?): [Beste Art und Weise Passwort in der Datenbank zu speichern] (http: // Stackoverflow .com/q/1054022/335858). – dasblinkenlight

+0

@ e4c5 ja ich tat. Es löst das Problem – Fouzy

Antwort

2

Ihre INSERT ist nicht syntaktisch korrekt. Selbst wenn Sie es reparieren, wird Ihre INSERT nicht funktionieren, weil Sie in derselben Tabelle auswählen und einfügen! Das ist in mysql nicht erlaubt.

Sie müssen stattdessen ein Update verwenden.

con.prepareStatement("UPDATE login SET ipaddress = ? WHERE user=? and password=?"); 
-1

Können Sie mit unter einem versuchen.

PreparedStatement ps = con.prepareStatement("INSERT INTO login(ipaddress) VALUES select ipaddress from login where user=? and password=?"); 
      ps.setString(1,id); 
      ps.setString(2, password);