PHP PDO - 何时使用bindParam(1,$ blabla)与bindParam(':blabla',$ blabla)

时间:2010-06-21 13:11:22

标签: php pdo

所有

我真的不了解命名占位符bindParam(':blabla', $blabla)与编号占位符bindParam(1, $blabla)的使用情况。它主要是一个可读性问题吗?

谢谢,

JDelage

3 个答案:

答案 0 :(得分:8)

当你想通过在中间添加一个额外的占位符 来扩展你的查询时,

编号的占位符将被证明是PITA,要求你在所有使用占位符的地方重新编号您刚插入的占位符。

另一方面,命名占位符不会出现此问题,因为占位符的位置与占位符的绑定无关。

答案 1 :(得分:2)

这主要只是一个可读性问题。就个人而言,我会尽可能使用命名占位符。我通常只在构建动态查询时使用编号的占位符,在这种情况下,您不确切知道在运行时之前将有多少参数。

答案 2 :(得分:0)

简单答案:

  • 它们允许编写查询,这意味着如果必须多次执行该查询,SQL引擎将不必检查语法是否正确
  • 有助于防止SQL注入
  • 提高可读性