java.sql.SQLException:Netbeans 上的参数索引超出范围(5 > 参数数量,即 4)
java.sql.SQLException: Parameter index out of range (5 > number of parameters, which is 4) on Netbeans
我开始学习使用 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 驱动程序的错误。
您在 last_name=?' 之后添加了引号,因此将其视为字面意思。
放在last_name之后=
之前
它应该是这样的,
String editQuery = "UPDATE `clients` SET `first_name` = ?, `last_name` = ?, `phone` = ?, `email` = ? WHERE `id` = ? ";
如果答案有帮助,请点赞。
我开始学习使用 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 驱动程序的错误。
您在 last_name=?' 之后添加了引号,因此将其视为字面意思。
放在last_name之后=
之前它应该是这样的,
String editQuery = "UPDATE `clients` SET `first_name` = ?, `last_name` = ?, `phone` = ?, `email` = ? WHERE `id` = ? ";
如果答案有帮助,请点赞。