Does cfquery
只要有 1 就成为准备好的语句cfqueryparam
?或者还有其他条件吗?
当ORDER BY
条款或FROM
子句是动态的?每个独特的组合都会成为准备好的声明吗?
当我们这样做时会发生什么cfloop
with INSERT
,使用每个值 cfqueryparam'ed,并以不同的迭代次数调用 cfquery?
准备好的语句太多有潜在的问题吗?
DB如何处理准备好的语句?它们会被转换成类似于存储过程的东西吗?
什么情况下不应该使用prepared statements?
谢谢你!
我可以回答你问题的部分内容:
只要有一个查询就会成为一个准备好的语句<queryparam
。我过去添加了一个where 1 = <cfqueryparam value="1"
没有任何动态参数的查询,以便让它们作为准备好的语句运行
大多数数据库处理preparedStarements的方式与存储过程类似,只是暂时保存,而不是长期保存,但细节可能是特定于数据库的。
假设您正在使用 ColdFusion 提供的驱动程序,如果您在数据源设置的高级面板中打开“日志活动”复选框,那么您将获得有关 CF 如何与 DB 交互以及何时创建的非常详细的信息一个新的preparedStatement以及何时重用它们。我建议您自己尝试一下,因为涉及很多因素(数据库设置、驱动程序、CF 版本等)。如果您确实使用数据库日志记录,请在运行测试代码之前重新启动 CF,以便您可以看到它创建准备好的语句,否则您只会看到它按 ID 重新使用语句,而看不到这些语句是什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)