Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Fehler bei PreparedStatement

Durch Aufruf von executeQuery(sql) Sie rufen tatsächlich eine Methode für Statement auf - nicht auf PreparedStatement . Sie werfen also den bereits zugewiesenen Parameterwert weg und führen eine Abfrage aus, bei der der Platzhalter ? ist bleibt ungeparst - also erhalten Sie diesen Fehler.

Ändern

 ResultSet results = state.executeQuery(sql);

zu

 ResultSet results = state.executeQuery();

und es sollte dir gut gehen.

(Und natürlich

resultname = state2.executeQuery(sql2);

muss sein

resultname = state2.executeQuery();

auch)