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

我正在为大学做的期末项目需要帮助,我正在做一个图书馆类系统。我是 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!");

            }


冉冉说
浏览 95回答 1
1回答

潇湘沐

列名不能是 的变量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 changebook_edit.setInt(2, book_id); //the primary key in my database
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java