phpmysqlimysqli_query()mysqli_real_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查詢是不是成功(可以簡單這樣理解), 成功的話, 再呼叫獲取結果集的函式
注意:
也正是因為結果集是逐條返回的, 所以只能順序讀取結果, 不能隨機指定偏移量去獲取某一條記錄, 也不能獲取記錄的總條數等等