Symfony 2 - Doctrine ORM Update查询不起作用

时间:2016-04-06 07:07:34

标签: mysql symfony doctrine query-builder

我正在尝试使用Doctrine使用以下查询更新mysql表。但表格没有得到更新。下面的代码也没有抛出任何错误。我完全糊涂了。如果我运行查询,取自getDQL()方法,在mysql直接显示0行更新,因为inproper qoutes。在为查询中的值放置适当的qoutes之后它正在工作。需要帮助解决这个难题。

由于我是新学说,我将使用querybuilder类文件中的示例。

{{1}}

1 个答案:

答案 0 :(得分:0)

您是执行查询还是只是构建它?你应该沿着这些方向执行它:

$support->getQuery()->getSingleScalarResult();
  

如果我运行查询,取自getDQL()方法,直接在mysql中显示0行更新,因为不合适的qoutes。

getDQL()返回DQL而不是SQL,因此如果您尝试直接在MySQL中运行它,它会有不正确的引号,但这是预期的。

您不应该将$issn连接到查询中。您应该使用参数:

$qb = $this->createQueryBuilder()

$support = $qb->update('gcns', 'g')
   ->set('g.isActive', '0')
   ->andWhere( $qb->expr()->eq('g.issn', ':issn') )
   ->setParameter( 'issn', $issn )
   ->getQuery()->getSingleScalarResult()
;