我正在尝试使用Phalcon(1.2.5 - 1020540)\ Phalcon \ Db \ Adapter \ Pdo \ Mysql-> executePrepared()
exectePrepared需要三个论点:
public PDOStatement executePrepared (
PDOStatement $statement,
array $placeholders,
array $dataTypes)
但我在文档中找不到如何填充$ dataTypes。
我尝试:
$dataType[] = \PDO::PARAM_INT;
和:
$dataType[] = \Phalcon\Db\Column::TYPE_INTEGER;
但使用相同的“无效绑定类型参数”消息
在1.2.4上也是如此,我升级尝试修复它。
欢迎任何建议。
答案 0 :(得分:2)
通常phalcon需要使用以下语法编写db参数:
array("columnName => ':value:'", 'bind' => array('value' => 'foo'));
你试过吗
array('column_name' => \Phalcon\Db\Column::TYPE_INTEGER);
认为这应该有效,因为phalcon内部使用密钥很多(例如https://github.com/phalcon/cphalcon/blob/master/ext/db/adapter/pdo.c搜索dataType)
答案 1 :(得分:0)
您还可以使用describeColumns($ table)为给定的表请求PDO-Adapter(例如Phalcon \ Db \ Adapter \ Pdo \ Mysql)并返回Phalcon \ Db \ Column,然后您可以请求getBindType()
$fields = $this->db->describeColumns($table);
foreach ($fields as &$field) {
$objectFields[$field->getName()] = $field->getBindType();
}