sql >> Databasteknik >  >> RDS >> Mysql

Fel med PreparedStatement

Genom att anropa executeQuery(sql) du anropar faktiskt en metod på Statement - inte på PreparedStatement . Så du kastar bort parametervärdet som redan tilldelats och kör en fråga där platshållaren ? förblir oparerad - så du får det felet.

Ändra

 ResultSet results = state.executeQuery(sql);

till

 ResultSet results = state.executeQuery();

och du borde klara dig.

(Och av orsaken

resultname = state2.executeQuery(sql2);

måste vara

resultname = state2.executeQuery();

likaså)




  1. MySQL FIND_IN_SET() fungerar inte som förväntat

  2. PDO förberedde satsen fetch() som returnerar dubbla resultat

  3. Begränsa daglig åtkomst

  4. Är en vy snabbare än en enkel fråga?