mysql while里select_哪一个mysql select 查询是好的?while and foreach

原答案由于个人认知存在错误,给出了错误的解答,非常抱歉。

当 query 返回结果为 一个 mysql_result 对象。后 mysql_fetch_all 虽然鸭读出数据可以更直观的看到数据,但是这也有另一位答主提到的 迭代器,在查阅相关文档后确定。其次 因为 mysql 有两套驱动 ,在 Linux 下 因为驱动的问题还会存在 mysql_fetch_all 方法不存在的问题。

当然 因为实现了迭代器,两种方式都适用于 foreach ,这与使用的迭代的方式无关。

首先,你这两个 if 都是没必要的。

其次,原则上来说 取出所有结果集后再交给循环去遍历每一个项目是最快的,使用获取行相对要慢一些。

mysqli_fetch_assoc 从 mysql 的结果集标识符中取出一行

注意这里的一行,即并不适用于取多条数据,但是在一些上古时代的文章中,取多条数据很多人都还是采用的诸如

while($row=mysqli_fetch_assoc($query)){

// TODO

}

这样的方式来循环结果集,直到结果集为空为值,但是在这整个过程中,每次都需要去调用 mysqli_fetch_assoc 这个方法来从语柄中拿出关联数组。

而,当我们需要多条数据的时,就应该主动的去使用 mysqli_fetch_all 这个方法来进行取出所有结果集的二维关联数组,而且这时候 无论我们使用哪种方式来循环遍历数据都无所谓。

但是最佳建议为 foreach ,诸如像代码中的空数组判断,这些对于 foreeach 来说都是非必要,内部会自动去处理。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值