2016-12-02 68 views
1

當我創建一個函數,像這樣,我必須關閉mysqli結果集還是自動關閉?Mysqli結果必須在函數中關閉?

function return_true(){ 
    $query_res = $database->query("SELECT * FROM balance_sheet_rows"); 
    //some code here 
    return true; 
} 

在這種情況下,做我需要做$query_res->close()或者它自動關閉返回值的函數?

有沒有重複的問題,因爲其他人要問是否必須關閉才能結束腳本。我問我是否必須在功能返回一個值之前關閉!當我有一個執行查詢的函數時,我的var $ res必須關閉?文檔 - >http://php.net/manual/en/mysqli-result.free.php

+1

自動關閉**當PHP實例結束**時,**通常*在頁面加載結束時自動關閉。 –

+6

你也可以[引用此類似的問題](http://stackoverflow.com/questions/880885/is-closing-the-mysql-connection-important) – WEBjuju

+0

我知道,PHP實例結束時自動關閉,但關閉還有一個函數返回一個值? – Gianlo

回答

0

mysqli_result類中沒有close()方法。可能你的意思是關閉打開的數據庫連接的方法mysqli::close。所以當PHP腳本完成執行時,連接將自動關閉。不過建議手動關閉它(在你的情況下爲$database->close()),因爲這會將資源返回給PHP和MySQL,這可以提高性能。

如果您詢問有關分配內存的結果集。那麼是的,你應該手動釋放該內存以合理使用系統資源。但是,這不是必需的。

+0

mysqli_result類有一個名爲free()的方法,面向對象的風格,free方法可以由close()調用。文檔 - > http://php.net/manual/en/mysqli-result.free.php – Gianlo

+0

好吧,你問關於close()方法。我已經更新了答案 –

+0

非常感謝!,有一種方法可以刪除帖子標題上的[重複]嗎? – Gianlo