admin 发表于 2022-11-2 17:05:31

php mysqli函数查询 select的结果集行数 update、delete、insert的影响行数

有时候,在使用数据库时,我们不仅需要知道执行成功失败,还要知道执行结果的行数,以便做出更多的判断。
在php中使用mysqli时,查看这个行数是分两个属性的。

一、查看select的结果集行数
在使用数据库查询(select)时,我们有时候不只需要知道执行是否成功,还需要查看查询到了几条记录,以此来调整界面或修改提示语。
查看结果集的行数,使用的是结果集对象的属性:num_rows。
$mysqli = new mysqli(...);
$sql = "select * from table_a";
$res = $mysqli->query($sql);
if($res){//如果数据库操作正常,不论是否查询到符合条件的结果,都是返回一个对象
        $num = $res->num_rows;//从结果集的属性中获取查询到几条数据
}else{
        //如果数据库操作发生错误,结果集返回的不是一个对象,而是false
}二、查看update、delete、insert的影响行数
除了select操作,其它三个操作的结果集里是没有num_rows这个属性的,如果使用这个属性会报错。
因为这三个操作执行后,我们要获取的行数应该是影响行数,而不是结果集行数。影响行数使用的是mysqli对象中的属性:affected_rows。
$mysqli = new mysqli(...);
$sql = "update table_a set column_1='123',column_2='abc' where id=1";
$res = $mysqli->query($sql);
if($res){//结果集不是false,表示操作成功
        $num = $mysqli->affected_rows;//从mysqli对象中获取影响行数
        if($num>0){
                echo "修改成功,修改记录数:".$num."条";
        }else{
                //没有记录被修改
        }
}


页: [1]
查看完整版本: php mysqli函数查询 select的结果集行数 update、delete、insert的影响行数