標籤:注意 隨機 result sql查詢 sel 迴圈 tor query 擷取
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查詢是不是成功(可以簡單這樣理解), 成功的話, 再調用擷取結果集的函數
注意:
也正是因為結果集是逐條返回的, 所以只能順序讀取結果, 不能隨機指定位移量去擷取某一條記錄, 也不能擷取記錄的總條數等等
php mysqli mysqli_query() mysqli_real_query()