php - Doctrine 2 在更新时获得匹配的行数而不是受影响

标签 php mysql symfony doctrine-orm

我有这样的代码:

    $updateSQL = "UPDATE `Rooms` R SET R.Revenue = {$s['Revenue']}, R.Ave_rent = {$s['Ave_Rent']}
                  WHERE R.Facility_ID={$s['Facility_ID']} AND R.Cur_Year={$s['Year']} AND R.Cur_Month={$s['Month']}";

    $affectedRows = $this->em->getConnection()->executeUpdate($updateSQL);
    if($affectedRows > 0) { ... }

一切正常。我需要知道有多少行符合我的条件 R.Facility_ID={$s['Facility_ID']} AND R.Cur_Year={$s['Year']} AND R.Cur_Month= {$s['Month']} 我不在乎它们是否受到影响我不想再使用一个选择。

也许有一些设置让 mysql 计算受影响的行,即使是相同的?

最佳答案

MySQL 本身返回受影响的行数,而不是匹配的行数,参见 the manual .

如果 Doctrine 在这里做你想做的事,它就必须执行另一个查询。如果你真的需要这个,你将不得不自己做。

编辑:阅读文档后面的一句话,我看到 mysql_info (PHP 中的 mysqli_info)返回此信息。

关于php - Doctrine 2 在更新时获得匹配的行数而不是受影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11230045/

相关文章:

javascript - $index 不存在于 ng-repeat 中 - 答案在我原来的帖子中

mysql - mysql中整数数组的最小存储?

mysql - 无法创建返回某些值的存储例程

mysql - Left 函数遗漏字符

php - 奏鸣曲管理员 : Prevent Admin From Deleting His Own Account

php - 在我的 PHP 代码中找不到 'syntax error'

php - 如何删除codeigniter中的特定行?

php - 同一防火墙中的Symfony2认证方式

php - Symfony 查询语法

symfony - 尝试使用带有 Symfony2 的事件监听器交换 Controller