gpt4 book ai didi

mysql - Symfony 2 - Doctrine ORM 更新查询不起作用

转载 作者:行者123 更新时间:2023-11-29 21:10:16 25 4
gpt4 key购买 nike

我正在尝试使用 Doctrine 通过以下查询更新 mysql 表。但该表没有得到更新。另外下面的代码没有抛出任何错误。我完全困惑了。如果我运行从 getDQL() 方法获取的查询,直接在 mysql 中显示由于 qoutes 不正确而更新了 0 行。在为查询中的值放置正确的 qoutes 后,它就可以工作了。需要帮助来解决这个难题。

由于我是 Doctrine 新手,因此我将使用 querybuilder 类文件中给出的示例。

    $support = $this->createQueryBuilder('p')
->update('gcns', 'g')
->set("g.isActive", "0")
->andWhere("g.issn='".$issn."'");

最佳答案

您曾经执行过查询还是只是构建它?您应该有一些类似的东西来执行它:

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

If i run the query, taken from getDQL() method, in mysql directly it showing 0 rows updated becuase of inproper 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()
;

关于mysql - Symfony 2 - Doctrine ORM 更新查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36443857/

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