2016-11-08 1 views
0
public static void updateData(Connection con, String make, String reg) { 
    String selectString = "UPDATE Cars SET Make = ? WHERE Reg = ?"; 
    try 
    { 
     PreparedStatement pStmt = con.prepareStatement(selectString); 
     pStmt.setString(1, make); 
     pStmt.setString(2, reg); 
     pStmt.executeUpdate(selectString); 
     pStmt.close(); 

    }... 

私は、コードのこの部分のために、次のエラーを取得しています:近くに使用する正しい構文 '? Reg =? '

SQL Exception: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '? WHERE Reg = ?' at line 1 

誰かが私を助けることができれば、私は感謝します。私は周りを探索したが、私の問題は私が見つけた解決策とはかなり異なっている。

答えて

5

PreparedStatements

pStmt.executeUpdate(); 
+1

これは、それが働いた、うんおかげで –

+0

動作しますなぜ多分あなたは説明できるためのもので、オーバーロードexecuteUpdateを使用してください。オーバーロードされたバージョンとオーバーロードされていないバージョンの違いは何でしたか? – shaam

+1

'executeUpdate(String)'は 'Statement'クラスで実装されていて' PreparedStatements'をサポートしていません。 [docs](https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#executeUpdate(java.lang.String))からこのメソッドはPreparedStatementで呼び出すことはできません。 CallableStatement_ – Reimeus

関連する問題