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

时间:2014-12-09 09:59:18

标签: 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行。我没理由。

当我使用以下代码时,

if (!$update->affected_rows) {
            $count++;
            }   

$count变为212

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

2 个答案:

答案 0 :(得分:5)

尝试以下代码。

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

希望这有帮助。

答案 1 :(得分:0)

$ db->查询返回对象结果 试试这个 : $ affected_rows = $ db-> exec(" UPDATE表SET字段='值'"); echo $ affected_rows。'受到影响' 更多http://php.net/manual/en/pdo.exec.php