我有这样的代码:
$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/