语法错误 - Doctrine \ ORM \ Query \ QueryException

时间:2013-05-06 06:15:08

标签: mysql doctrine-orm doctrine

这是我正在使用的查询:

$q = $this->getEntityManager()->createQueryBuilder("SELECT e FROM ActionModule\Action e JOIN e.type t WHERE t.id IN (:ids)");

我已尝试过每个参数分配选项:

  • :IDS
  • λ1
  • implode(',',$ ids)
  • ?IDS

总是得到:

  

学说\ ORM \查询\ QueryException

     

[语法错误]第0行,第1列:错误:预期的IdentificationVariable   | ScalarExpression | AggregateExpression |功能声明|   PartialObjectExpression | “(”Subselect“)”| CaseExpression,结束了   字符串

提前多多感谢

修改

我已弃用$q->getQuery()->getDql()并得到: "SELECT" (6)

1 个答案:

答案 0 :(得分:4)

createQueryBuilder不接受任何参数,其目的是使用构建器方法创建查询,而不是DQL。

您需要的是createQuery

$q = $this->getEntityManager()->createQuery("SELECT e FROM ActionModule\Action e JOIN e.type t WHERE t.id IN (:ids)");