2011-04-03 145 views
0
 String myquery="INSERT INTO likestatus values(?,?)"; 


     PreparedStatement st1=con.prepareStatement(myquery); 
     st1.setString(1,Integer.toString(rid)); 
     st1.setString(2, id); 
     st1.executeUpdate(myquery); 

我得到的錯誤是INSERT語句

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 您的SQL語法錯誤; 檢查對應 你的MySQL服務器版本使用附近的 正確的語法手冊「?,?)」在 線1

回答

0

在您的最後一行中,您再次繞過了SQL語句字符串,繞過了準備好的語句功能。就在最後一行改成這樣:

st1.executeUpdate(); 

的PreparedStatement擴展語句,這樣的executeUpdate(串)仍然是可用的,但是你的對象知道有SQL,您使用的executeUpdate(),而不是通常不使用它。

0

看來你需要指定你提供價值的具體列名爲:

INSERT INTO likestatus (column1, column2) values (?, ?) 
0

在您的代碼:

st1.setString(2, id); 

ID類型爲string?你需要確保你正在使用對應的setXXX方法對應datatype