我在原则和命名参数方面遇到了一个奇怪的问题。
下面是一个查询,它实际上与这组参数(动态在我的代码)完美地工作:
$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));
即使它是相同的机制,我得到以下错误
无效参数number:个数绑定变量个数不匹配标记
知道原因吗?顺便说一下,如果我用经典的方法直接在函数中填入顺序,极限和偏移量,它是有效的。
参数变量不能包含":"字符…
试试更换:
$params = array( ':id_editeur' => 1,
':nom_editeur' => 'Test');
:
$params = array( 'id_editeur' => 1,
'nom_editeur' => 'Test');
尝试删除params数组中的圆括号。
$params = array( ':orderby' => 'e.id_editeur ASC',
':limit' => '10',
':offset' => '20');