簡體   English   中英

參數索引超出范圍(1>參數數量,即0)。 怎么解決呢?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM