更新查询成功但num_rows返回错误

时间:2017-08-01 14:01:50

标签: php mysqli

以下是我的疑问:

$sql = "UPDATE `tbl_override_marks` SET final_mark ='$mark', confirmed ='Y' 
        WHERE fk_class_sub_id ='$cls_sub'";

当我给:

$result = $conn->query($sql);
echo $result->num_rows;

它让我尝试在地址中获取非对象的属性,但数据库已更新。 有人可以告诉我哪里出错了以及如何查找受影响的行数?

2 个答案:

答案 0 :(得分:3)

我认为您正试图让记录数量受到影响。 mysql_affected_rows 会返回受上一次INSERTUPDATEREPLACEDELETE查询影响的行数。

要检查受影响的行,请使用

$sql = "UPDATE `tbl_override_marks` SET final_mark ='$mark', confirmed ='Y' 
    WHERE fk_class_sub_id ='$cls_sub'";
$result = $conn->query($sql);
echo $conn->affected_rows;

您可以查看手册mysqli::$affected_rows

答案 1 :(得分:2)

$affected_rows是类mysqli的属性,而不是mysqli_result。所以你必须以正确的方式访问它:

echo $conn->affected_rows;