mysqli查询执行结果的影响行数

有时候,在使用数据库时,我们不仅需要知道执行成功失败,还要知道执行结果的行数,以便做出更多的判断。
在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{
    
    
		//没有记录被修改
	}
}

猜你喜欢

转载自blog.csdn.net/babdpfi/article/details/106527994