我发现当我尝试使用参数运行更新查询时,出现错误
参数推导的类型不一致
也许那是因为目标字段的类型(字符变化),一切都适用于文本列类型。但我不想仅仅因为这个而改变列类型。然后我被告知我应该直接传递params(使用bindValue或bindParam,确定每个值的类型)而不是发送params数组来执行方法。
但是当我这样做时,我得到了错误
错误:绑定消息提供 0 个参数,但准备好的语句“pdo_stmt_00000001”需要 1
测试代码是
$Stmt = $DB->prepare("SELECT * FROM test_table WHERE test_field=:test_field");
$Stmt->bindValue(':test_field', 'test', PDO::PARAM_STR);
$Stmt->execute();
var_dump($DB->errorInfo());
因此,据了解,绑定根本不起作用。或者我做错了。但也许有办法解决它?
我正在使用 PostgreSQL 9.2.3、libpq 8.4.16 运行 PHP 5.4.12。