如何在执行更新查询后获得受影响的行数?

gan*_*rap 1 php mysql

以下是代码:

$count = 0;
$update = $db->query("UPDATE $table SET price = '$price' WHERE sku = '$sku'");
        if ($update->affected_rows) {
        $count++;
        }   
echo $count;
Run Code Online (Sandbox Code Playgroud)

执行上面的代码后,行得到在更新的db,但值的$count0.根据我的假设,$ count的值应该是122,只是因为更新了122行.我不明白为什么.

当我使用下面的代码时,

if (!$update->affected_rows) {
            $count++;
            }   
Run Code Online (Sandbox Code Playgroud)

$count212.

我无法理解这种行为.我希望有人解释上面的代码及其行为方式?

小智 5

试试下面的代码.

$update = $db->query("UPDATE $table SET price = '$price' WHERE sku = '$sku'");
        if ($update) {
       printf("Records Updated: %d\n", mysql_affected_rows());
        }   
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.