java.sql.SQLException:Netbeans上的参数索引超出范围(5>参数数量,为4)

时间:2019-10-19 08:23:42

标签: java mysql sql sqlexception

我开始学习使用Netbeans制作Java GUI应用程序。我正在关注YouTube上的一个教程:https://www.youtube.com/watch?v=j0aEUB2Efuk。但是我遇到了mysql错误,我和视频中的家伙做的一样,但是无法正常工作。这是代码:

public boolean editClient(int id, String fname, String lname, String phone, String email) {
        PreparedStatement st;
        String editQuery = "UPDATE `clients` SET `first_name` = ?, `last_name = ?`, `phone` = ?, `email` = ? WHERE `id` = ? ";

        try {

            st = my_connection.createConnection().prepareStatement(editQuery);

            st.setInt(1, id);
            st.setString(2, fname);
            st.setString(3, lname);
            st.setString(4, phone);
            st.setString(5, email);


            return st.executeUpdate() > 0;

        } catch (SQLException ex) {
            Logger.getLogger(CLIENT.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
    }

sql查询似乎还可以,或者是JDBC驱动程序存在错误。

1 个答案:

答案 0 :(得分:0)

您在 last_name =?'之后添加了引号,因此将其视为文字。

将其放在last_name之后和=之前

它应该看起来像这样

String editQuery = "UPDATE `clients` SET `first_name` = ?, `last_name` = ?, `phone` = ?, `email` = ? WHERE `id` = ? "; 

如果有帮助,请投票。