【发布时间】:2015-04-09 17:33:54
【问题描述】:
我最近将我的网站从 OCI 转换为 PDO。
我有这个 PHP:
foreach ($bindings as $key => $value) {
if ( strpos( $query, $key) ) {
$stmt->bindParam(":$key", $value);
echo "Bound ". $key ." => ". $value;
}
}
输出:
Bound :globalSearch0 => %NCR%
Bound :globalSearch1 => %NCR%
Bound :globalSearch2 => %NCR%
Bound :globalSearch3 => %NCR%
Bound :globalSearch4 => %NCR%
但是 PHP 仍然输出错误信息:
警告:PDOStatement::execute():SQLSTATE[HY000]:常规 错误:1008 OCIStmtExecute:ORA-01008:并非所有变量都绑定
但所有变量都绑定了!我回显了生成的 SQL 查询,它使用了 5 个变量,与绑定的数量相同!
我在这里完全错过了什么吗?这与我使用 oci_bind_by_name 的代码相同,我从未遇到任何问题,但 bindParam 似乎是造成这种情况的原因。
【问题讨论】: