2015-04-03 26 views
2

現在我有一個connect.php文件例如爲:何時必須關閉mysqli(數據庫)連接?

$mysql_host = ""; 
$mysql_database = ""; 
$mysql_user = ""; 
$mysql_password = ""; 

$con = new mysqli(
    $mysql_host, 
    $mysql_user, 
    $mysql_password, 
    $mysql_database 
); 

// Check connection 
if ($con->connect_error) { 
    die("Connection failed: " . $con->connect_error); 
} 

在使用MySQL查詢每一個其他PHP文件,我使用「包括‘connect.php’;」

對於W3Schools上的實例,它們爲每個查詢創建一個新連接,然後在使用後關閉它。看到這裏:w3schools.com:我不知道他們是否只是爲了表達目的,或者如果這是最好的做法。

問題是,什麼是最佳實踐?我必須在每次選擇後關閉連接,然後爲下一個查詢建立一個新連接?如果不是,我什麼時候最終不得不關閉連接?在所有查詢的PHP文件的結尾?

謝謝

回答

4

來自php.net網站的引用。

「腳本執行結束時,會自動銷燬打開的連接(以及類似的資源)。但是,您應該在不再需要時立即關閉或釋放所有連接,結果集和語句句柄。將有助於更快地將資源返回給PHP和MySQL。「

來源:http://php.net/manual/en/mysqli.close.php

編輯: 你問的時候,對不起overread說。 希望這仍然是有用的。

2

當您完成該頁面的使用後關閉連接。如果你有一個博客,那麼你用來發布它的按鈕將啓動代碼來打開連接,對連接做一些工作(比如將它添加到你的數據庫和/或在頁面上顯示),然後它會關閉連接,以便它不會再打開。但是,當您再次單擊該按鈕時,它將啓動該過程,僅根據需要使用資源。

0

最佳做法是使用footer.php中的關閉功能

+0

不確定這一點。如果你在header.php中完成了SQL,那麼你應該關閉SQL。 – 2015-04-03 17:47:36

+0

然後,您需要在每個文件中一次又一次寫入mysqli_close()。而是把它放在'頁腳文件'中。 – varunsinghal 2015-04-03 17:52:33

+0

正如@Thais已經提到的那樣,PHP在腳本執行結束時自動銷燬打開的連接。因此,在腳本的最後關閉mysql有點多餘。關閉連接可以重新分配資源。 – 2015-04-03 17:56:29