mysql mysqli怎么查看_php怎么判断mysqli的结果集是否为空

php怎么判断mysqli的结果集是否为空

今天做了一个简单的判断添加后台,主要判断这个链接在数据库中是否存在,如果不存在则开始添加,就是这么一个小功能,差点气翻我,上次这样还是mysqli_query查询为空不返回false的时候。大概一段时间没有碰mysqli了,忘记了怎么判断结果集是否为空,折腾了1个小时,最后才想起来,希望大家不要跟我一样健忘。

cd01cccf9c0183f57610815183ea6d1f.png

mysqli_query()不能用于判断

因为我学习mysqli的时候自己记过笔记,粗略的看了一眼,在我的潜意识中mysqli_query()查询成功就返回结果集,查询为空那不就是false了,于是我一开始是这样判断的

$re=mysqli_query($k,$sql);

if($re==false){

//执行添加语句,如果存在执行后面的代码

}

1

2

3

4

$re=mysqli_query($k,$sql);

if($re==false){

//执行添加语句,如果存在执行后面的代码

}

结果显而易见,即便是数据库确实没有任何数据,$re也绝对不会等于false,因为mysqli_query()不能用于判断查询是否为空!

我仔细的看了一遍我记录的关于mysqli_query()的笔记,终于发现了这样一句话:

mysqli_query() 仅对 SELECT,SHOW 或 DESCRIBE 语句返回一个mysqli_result结果集对象,如果查询执行不正确则返回 FALSE。

注意重点!查询不正确返回false,而不是查询为空返回false!!

粗心又浪费了我一个小时的时间,希望自己以后更加的细心。

mysqli_num_rows()才能用于判断

一番查找后找到了用于判断结果集是否为空的命令mysqli_num_rows(),它可以获取到结果集中的数据行数,这就好办了,将上面的错误代码进行以下修改:

$re=mysqli_query($k,$sql);

$num=mysqli_num_rows($re);

if($num==0){

//执行添加语句,如果存在执行后面的代码

}

1

2

3

4

5

$re=mysqli_query($k,$sql);

$num=mysqli_num_rows($re);

if($num==0){

//执行添加语句,如果存在执行后面的代码

}

经过测试,代码完美运行,如果结果集为空,mysqli_num_rows()获取的行数就为0,注意,mysqli_num_rows()仅对select语句有效。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值