【发布时间】:2012-04-04 10:52:12
【问题描述】:
将:name 形式的命名参数传递给PDOStatement::bindParam() 时,无论是否使用前导冒号似乎都有效。
即要么这个:
$statement->bindParam(':name', $var);
或者这个:
$statement->bindParam('name', $var);
似乎有效。
这是PDOStatement::bindParam()的文档
参数
参数标识符。对于使用命名的准备好的语句 占位符,这将是 :name 形式的参数名称。 使用问号占位符准备的语句,这将是 参数的 1 索引位置。
这是否意味着可以省略冒号?
【问题讨论】:
-
我会说 SQL 表达式中需要冒号,但当您使用
bindParam命名(标识)名称时不需要。 PDO 函数在这里可能不那么严格,因为它可以定义自己的接口来命名参数。