PreparedStatement 语法错误:深入探究
您遇到了与PreparedStatements 相关的错误消息。检查您的代码,特别是 selectSql1 查询和 select1 方法,会发现一个微妙的问题。
问题在于PreparedStatement 的executeQuery 方法的使用。您的 select1 方法当前尝试调用:
return this.stmt.executeQuery(sql);
其中 sql 是 SQL 查询本身。这不是在PreparedStatement上使用executeQuery方法的正确方法。
解决方案
修复方法只是将该行更新为:
return this.stmt.executeQuery();
通过从executeQuery方法中删除sql参数,可以确保执行PreparedStatement的内部查询而不是原始SQL字符串。 PreparedStatements 在 SQL 查询中提供用问号 (?) 表示的占位符参数,然后将这些参数绑定到特定值,例如 randNum。
因此,在此上下文中正确的executeQuery 调用是不带任何参数的,从而允许PreparedStatement执行其内部查询,该查询已与参数值绑定。
以上是ReadyStatement `executeQuery()`:为什么在没有 SQL 字符串参数的情况下使用它?的详细内容。更多信息请关注PHP中文网其他相关文章!