搜尋
首頁类库下载PHP类库MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的差別

這篇文章主要介紹了PHP的mysqli_query參數MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的區別,本文給出了這兩個參數的5個區別,需要的朋友可以參考下

 

還是主流
今天在翻php manul的時候,發現mysqli 的查詢可以傳遞一個有意思的參數

@mysqli_query($this->sql,$SQL,($method ? MYSQLI_USE_RESULT : MYSQLI_STORE_RESULT));

在php manul上面對這兩個參數是這樣解釋的。

Either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, MYSQLI_STORE_RESULT is used.

如果什麼也不傳,那就預設為MYSQLI_STORE_RESULT。

在phpmanul上面有人說了這樣一句話If we have to retrieve large amount of data we use MYSQLI_USE_RESULT

其實這兩個參數的區別還是很大的。

(1)差別在於從伺服器上檢索結果集的行。
(2)MYSQLI_USE_RESULT 啟動查詢,但實際上並未獲取任何行
(3)MYSQLI_STORE_RESULT 立即檢索所有的行
(4)MYSQLI_STORE_RESULT 從伺服器上檢索結果集時,就提取了內存行,並為之分配內存行儲存到客戶機中,接著呼叫mysqli_fetch_array()就再也不會回傳錯誤,因為它只是把行脫離了已經保留結果集的資料結構,mysqli_fetch_array()傳回NULL始終表示已經到達結果集的末端。
(5)MYSQLI_USE_RESULT 本身不檢索任何行,而只是啟動一個逐行的檢索,就是說必須對每行呼叫 mysqli_fetch_array()來自己完成。既然如此,雖然正常情況下,mysqli_fetch_array()傳回NULL仍然表示此時已到達結果集的末端,但也可能表示在與伺服器通訊時發生錯誤。

總結

與MYSQLI_USE_RESULT相比,MYSQLI_STORE_RESULT 有著較高的記憶體和處理需求,因為是在客戶機上維護整個結果集,所以記憶體分配和創建資料結構的耗費是非常巨大的,如果想一次檢索多個行,可用MYSQLI_USE_RESULT。

MYSQLI_USE_RESULT有著較低的記憶體需求,因為只需給每次處理的單行分配足夠的空間。這樣速度就較快,因為不必為結果集建立複雜的資料結構。另一方面,MYSQLI_USE_RESULT把較大的負載加到了伺服器上,它必須保留結果集中的行,直到客戶機看起來適合檢索所有的行。


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能