gpt4 book ai didi

php - 使用命名参数执行 params with doctrine

转载 作者:行者123 更新时间:2023-12-05 04:18:57 26 4
gpt4 key购买 nike

我在 Doctrine 和命名参数方面遇到了一个奇怪的问题。

这是一个查询,它实际上与这组参数(在我的代码中是动态的)完美配合:

$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));

即使是相同的机制,我也会收到以下错误

Invalid parameter number: number of bound variables does not match number of tokens

知道原因吗?顺便说一句,如果我以经典方式直接在函数中填充 orderby、limit 和 offset,它就会起作用。

最佳答案

params var 不能包含“:”字符...

尝试替换:

$params = array(    ':id_editeur' => 1,
':nom_editeur' => 'Test');

到:

$params = array(    'id_editeur' => 1,
'nom_editeur' => 'Test');

关于php - 使用命名参数执行 params with doctrine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5894888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com