全,
我不太理解命名占位符bindParam(':blabla', $blabla)和编号占位符bindParam(1, $blabla)的用法。这主要是可读性的问题吗?
谢谢,
JDelage
发布于 2010-06-21 21:22:37
当你想要通过在中间的中添加一个额外的占位符来扩展你的查询时,编号占位符将被证明是一个PITA,这要求你在你刚刚插入的占位符之后重新编号你使用的占位符。
另一方面,命名占位符不会有这个问题,因为占位符的位置对占位符的绑定并不重要。
发布于 2010-06-21 21:16:15
这基本上只是一个可读性的问题。就我个人而言,我会在可能的情况下使用命名占位符。我通常只在构建动态查询时才使用数字占位符,而在运行之前不能确切知道有哪些参数或有多少个参数。
发布于 2010-06-21 21:17:28
简单的答案:
可读性允许准备查询,这意味着如果必须多次执行该查询,SQL引擎将不必检查语法是否正确,这有助于防止SQL injection
。
https://stackoverflow.com/questions/3084920
复制相似问题