[英]Parameter index out of range (1 > number of parameters, which is 0). how to solve it?
我無法將數據從Java插入數據庫
這是sql和語句
//query
String username = txtUsername.getText();
String password = txtPassword.getText();
String namabisnis = txtBisnis.getText();
String sql = "insert into user (username,password,namabisnis) values('?','?','?')";
try {
preparedStatement = con.prepareStatement(sql);
preparedStatement.setString(1, username);
preparedStatement.setString(2, password);
preparedStatement.setString(3, namabisnis);
int masuk = preparedStatement.executeUpdate(sql);
lblerror.setTextFill(Color.TOMATO);
lblerror.setText("Akun Anda Sudah Didaftarkan, Silahkan Login");
} catch (SQLException ex) {
System.err.println(ex.getMessage());
//return "Exception";
lblerror.setTextFill(Color.TOMATO);
lblerror.setText("Error Saat Mendaftarkan Akun");
}
我收到以下錯誤:
參數索引超出范圍(1>參數數量,即0)。
這是怎么引起的,我該如何解決?
從查詢中刪除單引號( '?'
⇒ ?
):
String sql = "insert into user (username,password,namabisnis) values(?,?,?)";
我再次收到以下錯誤: 您的SQL語法有錯誤; 檢查與您的MariaDB服務器版本相對應的手冊以在第1行的'?,?,?)'附近使用正確的語法
那是因為您需要不帶參數地調用executeUpdate()
。 傳遞查詢將使它無需綁定即可執行(不會替換引號)。
調用時不帶參數:
int masuk = preparedStatement.executeUpdate();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.