Php 执行更新查询后,如何获取受影响的行数?
代码如下:Php 执行更新查询后,如何获取受影响的行数?,php,mysql,Php,Mysql,代码如下: $count = 0; $update = $db->query("UPDATE $table SET price = '$price' WHERE sku = '$sku'"); if ($update->affected_rows) { $count++; } echo $count; 执行上述代码后,db中的行将得到更新,但$count的值为0。根据我的假设,$count的值应该是122,因为122行被更新了。
$count = 0;
$update = $db->query("UPDATE $table SET price = '$price' WHERE sku = '$sku'");
if ($update->affected_rows) {
$count++;
}
echo $count;
执行上述代码后,db中的行将得到更新,但$count的值为0。根据我的假设,$count的值应该是122,因为122行被更新了。我不明白为什么
当我使用下面的代码时
if (!$update->affected_rows) {
$count++;
}
美元计数变为212
我无法理解这种行为。我希望有人解释上面的代码及其行为方式?尝试下面的代码
$update = $db->query("UPDATE $table SET price = '$price' WHERE sku = '$sku'");
if ($update) {
printf("Records Updated: %d\n", mysql_affected_rows());
}
希望这有帮助。尝试下面的代码
$update = $db->query("UPDATE $table SET price = '$price' WHERE sku = '$sku'");
if ($update) {
printf("Records Updated: %d\n", mysql_affected_rows());
}
希望这有帮助。$db->query返回对象结果 试试这个: $infected_rows=$db->execUPDATE table SET field='value'; echo$受影响的行。'受影响'
如需了解更多信息,请返回对象结果 试试这个: $infected_rows=$db->execUPDATE table SET field='value'; echo$受影响的行。'受影响'
更多信息是的,这会有所帮助。非常感谢。但我仍然不明白为什么受影响的行在这种情况下不起作用。@gandrap如果要更新的价格相同,则受影响的行仍然为false。因为我想要的是在不受影响的行时插入新行。如果使用if$update,我无法执行该操作。@gandrap,如果您的值与之前影响行的值相同,则始终返回false,根据您的条件,请阅读返回值部分:@jogesh_pi是的,我知道。问题是它不是相同的值,但仍然返回false。例如,以前的价格值为100,更新后的价格值为110。是的,这有帮助。非常感谢。但我仍然不明白为什么受影响的行在这种情况下不起作用。@gandrap如果要更新的价格相同,则受影响的行仍然为false。因为我想要的是在不受影响的行时插入新行。如果使用if$update,我无法执行该操作。@gandrap,如果您的值与之前影响行的值相同,则始终返回false,根据您的条件,请阅读返回值部分:@jogesh_pi是的,我知道。问题是它不是相同的值,但仍然返回false。例如,以前的价格值为100,更新后为110。