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

问题描述 投票:-1回答:1

我开始学习使用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驱动程序的错误。

java mysql sql sqlexception
1个回答
0
投票

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

将其放在last_name之后和=之前

它应该看起来像这样,

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

如果有帮助,请提供答案。

© www.soinside.com 2019 - 2024. All rights reserved.