php mysqli mysqli_query() mysqli_real_query()

时间:2021-02-18 06:06:10

2016年11月26日 15:22:27 星期六

场景:

PHP从mysql中读取数据

1. 一次性读取所有数据返给PHP

2. 每次循环只读取一掉记录

数据量小的时候可以使用第一种方法, 数据量很大的时候就需要使用第二种方法了

第二种方法的使用:

如果用 php::mysql 扩展,  有一个函数叫做 mysql_unbuffered_query

如果用 php::mysqli 扩展, 有下面两种等价的使用方式:

  1) mysqli::query('select * from ....', MYSQLI_USE_RESULT)

  2) mysqli::real_query('select * from ...'); 配合函数 mysqli::use_result() 一起使用

解释:

mysqli::query('...', MYSQLI_STORE_RESULT) 等价于 mysqli::real_query() + mysqli::store_result() //MYSQLI_STORE_RESULT 是默认的可以不传, 一次性获取所有数据集返回给PHP

mysqli::query('...', MYSQLI_USE_RESULT) 等价于 mysqli::real_query() + mysqli::use_result() //每次返回一条记录给PHP

其中

mysqli::query() 返回的数据的类型是查询的结果集,

mysqli::real_query() 返回的是布尔值true/false 告知程序本次mysql查询是不是成功(可以简单这样理解), 成功的话, 再调用获取结果集的函数

注意:

也正是因为结果集是逐条返回的, 所以只能顺序读取结果, 不能随机指定偏移量去获取某一条记录, 也不能获取记录的总条数等等