Doctrine(无效参数号:绑定变量数与令牌数不匹配)

时间:2015-03-24 02:27:34

标签: php symfony doctrine-orm token dql

我无法使用Doctrine调试错误。我有以下代码,旨在获取特定所有者的所有帐户(表格之间存在一对多的映射关系;#34;所有者"以及"帐户"):

$em = $this->getDoctrine()->getManager();
$query = $em->createQuery('SELECT a FROM AcmeUserBundle:Account a WHERE a.owner=11');
$accounts = $query->getResult();

此代码可以正常运行并为ID为11的所有者获取所有帐户。现在,作为调试的一部分,我刚刚更改了所有者ID的确定,如下所示:

$id = 11;
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery('SELECT a FROM AcmeUserBundle:Account a WHERE a.owner=:id');
$accounts = $query->getResult();

我收到以下错误消息"参数号无效:绑定变量的数量与令牌数量不匹配"。任何人都可以给我一些关于"绑定变量"的概念的高级解释。和#34;令牌"以及让我知道我应该使用什么代码如果我想定义" id"在我的PHP控制器的其他地方感谢。

1 个答案:

答案 0 :(得分:2)

您需要将参数$ id设置为查询,否则构建器无法知道您的$ id:

$query->setParameter('id', $id);

由于错误表示作为您设置的参数的绑定变量的数量与':id'等标记的数量不匹配。