找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 364|回复: 0

[技巧分享] php mysqli函数查询 select的结果集行数 update、delete、insert的影响行数

[复制链接]
  • TA的每日心情
    奋斗
    2022-9-1 11:24
  • 签到天数: 50 天

    连续签到: 1 天

    [LV.5]常住居民I

    766680204
    发表于 2022-11-2 17:05:31 | 显示全部楼层 |阅读模式

    您需要 登录 才可以下载或查看,没有账号?立即注册

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

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



    回复

    使用道具 举报

    网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

    GMT+8, 2024-11-21 23:00

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表