【问题标题】:Syntax error - Doctrine\ORM\Query\QueryException语法错误 - Doctrine\ORM\Query\QueryException
【发布时间】:2013-05-06 06:15:07
【问题描述】:

这是我正在使用的查询:

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

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

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

总是得到:

Doctrine\ORM\Query\QueryException

[语法错误] line 0, col -1: Error: Expected IdentificationVariable |标量表达式 |聚合表达式 |功能声明 | 部分对象表达式 | "(" 子选择 ")" | CaseExpression,结束 字符串

提前非常感谢

编辑:

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

【问题讨论】:

    标签: mysql doctrine-orm doctrine


    【解决方案1】:

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

    你需要的是createQuery

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

    【讨论】:

      猜你喜欢
      • 2012-08-17
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      相关资源
      最近更新 更多