PDOStatement::bindParam() 中参数名称的前导冒号是否真的可选?
PDOStatement::bindParam() 允许您使用占位符(例如:name)在查询中指定命名参数。文档指出命名占位符的参数标识符应使用格式:name。然而,据观察,:name 和 name 似乎都可以使用,没有任何问题。
文档和支持的功能
PDOStatement::bindParam()文档明确提到对命名参数使用冒号前缀 (:name)。这表明官方不支持不使用冒号。
PHP 内部行为
尽管有文档说明,但 PHP 内部会在参数名称中缺少冒号时添加冒号。可以在 PHP 源代码 (ext/pdo/pdo_stmt.c:363) 中观察到此行为。这意味着当您使用不带冒号的名称时,PHP 将自动添加它。
可靠性和建议
虽然这种内部行为很方便,但值得注意的是官方文档不支持它。因此,不建议依赖此行为,并且建议在使用 PDOStatement::bindParam().
时始终对命名参数使用冒号前缀。免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3