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查询是不是成功(可以简单这样理解), 成功的话, 再调用获取结果集的函数
注意:
也正是因为结果集是逐条返回的, 所以只能顺序读取结果, 不能随机指定偏移量去获取某一条记录, 也不能获取记录的总条数等等