2016年11月26日 15:22:27 星期六php
場景:mysql
PHP從mysql中讀取數據sql
1. 一次性讀取全部數據返給PHP函數
2. 每次循環只讀取一掉記錄code
數據量小的時候能夠使用第一種方法, 數據量很大的時候就須要使用第二種方法了mysqli
第二種方法的使用:擴展
若是用 php::mysql 擴展, 有一個函數叫作 mysql_unbuffered_queryselect
若是用 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查詢是否是成功(能夠簡單這樣理解), 成功的話, 再調用獲取結果集的函數
注意:
也正是由於結果集是逐條返回的, 因此只能順序讀取結果, 不能隨機指定偏移量去獲取某一條記錄, 也不能獲取記錄的總條數等等