TA的每日心情 | 奋斗 2022-9-1 11:24 |
---|
签到天数: 50 天 连续签到: 1 天 [LV.5]常住居民I 766680204
|
有时候,在使用数据库时,我们不仅需要知道执行成功失败,还要知道执行结果的行数,以便做出更多的判断。
在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{
- //没有记录被修改
- }
- }
复制代码
|
|