我遇到了一个关于教条和命名参数的奇怪问题。
这是一个实际上与这组参数完美配合的查询(在我的代码中是动态的):
$params = array( ':id_editeur' => 1,
':nom_editeur' => 'Test');
public function updateById($params)
{
Doctrine_Query::create()
->update('Editeur e')
->set('e.nom_editeur', ':nom_editeur')
->where('e.id_editeur = :id_editeur')
->execute($params);
}
现在我有另一个功能
public function findAll($params)
{
$query = Doctrine_Query::create()
->from('Editeur e')
->orderBy(':orderby')
->limit(':limit')
->offset(':offset');
return $query->execute($params);
}
使用以下参数:
$params = array( ':orderby' => ('e.id_editeur ASC'),
':limit' => (10),
':offset' => (20));
即使它是相同的机制我也会收到以下错误
参数编号无效:编号 绑定变量与数字不匹配 令牌
有什么想法吗?顺便说一句,如果我以经典方式直接在函数中填充orderby,limit和offset,它就可以工作。
答案 0 :(得分:0)
尝试删除params数组中的括号。
$params = array( ':orderby' => 'e.id_editeur ASC',
':limit' => '10',
':offset' => '20');
答案 1 :(得分:0)
params var不能包含“:”字符......
尝试更换:
$params = array( ':id_editeur' => 1,
':nom_editeur' => 'Test');
为:
$params = array( 'id_editeur' => 1,
'nom_editeur' => 'Test');