2016-12-02 18 views
1

このような関数を作成すると、mysqli結果セットを閉じるか、自動的に閉じられる必要がありますか?この場合にはMysqliの結果を関数で閉じる必要がありますか?

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

、私は$query_res->close()が何をする必要がありますまたは関数が値を返したときに自動的に閉じていますか?

スクリプトの前にを閉じる必要があるかどうか他のpepoleが尋ねるので、重複した質問はありません終了します。関数が値を返す前に、私がを閉じなければならないかどうか尋ねます。クエリを実行する関数があると、私の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()によって呼び出すことができます。 Documentation - > http://php.net/manual/en/mysqli-result.free.php – Gianlo

+0

まあ、あなたはclose()メソッドについて尋ねました。私は答えを –

+0

ありがとうたくさん更新しました!、投稿タイトルに[重複]を削除する方法がありますか? – Gianlo

関連する問題