“参数索引超出范围(3>参数数量,即2)。”更新表格时

时间:2019-08-15 12:05:04

标签: java mysql

在为大学做的最后一个项目中,我需要帮助,我正在开发一种图书馆系统。我是MySQL的新手。

  

我在代码上遇到问题,“参数索引超出范围(3>参数数量,即2)。”

PreparedStatement book_edit = book_db.prepareStatement("update books set ?='?' where id=?");

            book_edit.setString(1, column); //where column is to set the column of the table
            book_edit.setString(2, input); //where input is what you want to change
            book_edit.setInt(3, book_id); //the primary key in my database

            int i = book_edit.executeUpdate();

            if (i != 0) {
                System.out.println("UPDATED!!");
            }
            else {
                System.out.println("Failed to Add Data!");
            }

1 个答案:

答案 0 :(得分:3)

列名不能是PreparedStatement的变量。它必须是SQL String的一部分:

PreparedStatement book_edit = book_db.prepareStatement("update books set " + column + "= ? where id = ?");

book_edit.setString(1, input); //where input is what you want to change
book_edit.setInt(2, book_id); //the primary key in my database