首页 >数据库 >mysql教程 >ReadyStatement `executeQuery()`:为什么在没有 SQL 字符串参数的情况下使用它?

ReadyStatement `executeQuery()`:为什么在没有 SQL 字符串参数的情况下使用它?

DDD
DDD原创
2024-11-20 13:14:15475浏览

PreparedStatement `executeQuery()`: Why Use It Without a SQL String Parameter?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn