我連接到使用
什麼時候應該關閉數據庫連接?
$dbh = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
MySQL數據庫在閱讀通過論壇和教程,它說,它是很好的做法(雖然不是很重要)儘快關閉數據庫連接,你用它完成。所以我的問題是這樣的:我應該在最後一次數據庫操作執行時總是添加$dbh = null;
?
我連接到使用
什麼時候應該關閉數據庫連接?
$dbh = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
MySQL數據庫在閱讀通過論壇和教程,它說,它是很好的做法(雖然不是很重要)儘快關閉數據庫連接,你用它完成。所以我的問題是這樣的:我應該在最後一次數據庫操作執行時總是添加$dbh = null;
?
在php中,您不必經常關閉數據庫連接。因爲在代碼完成後,Web服務器會關閉所有到數據庫的連接,因爲執行已結束。但是在整個執行期間,出於安全原因,您應該關閉它。但是,如果您創建了一個例子守護程序,則出於安全和內存方面的原因,您必須更頻繁地關閉它。打開的連接對於直接數據庫攻擊總是很危險,並保留一些內存。
如何關閉連接使其更安全? – PeeHaa
假設你不關閉任何與MySQL相關的連接,並假設你有一個包含很多部分的應用程序,並且每個部分可以分別與db一起工作。由於他們單獨執行,您將分別連接數據庫。如果你不關閉其中的任何一個,你的安全問題將會出現一些內存問題。例如,如果MySQL達到其最大連接限制,則應用程序將會死亡。然後,對應用程序的每個查詢都將被視爲對MySQL的DOS攻擊。最終,你的服務器將會因爲大量未處理的mysql查詢而死亡。 – mtndesign
您不打開多個連接。你打開一個並將其傳遞給所有需要它的「片段」。如果你需要在你的應用程序中打開很多不同的連接,你經常會犯這樣的錯誤。 – PeeHaa
大多數Web應用程序都需要在多個點上訪問數據庫。只需將其保持打開狀態,並在請求完成時讓它自動關閉。 – PeeHaa
http://php.net/manual/en/pdo.connections.php –
即使設置爲null,也不是立即執行的,因爲它會讓PHP的垃圾回收異想天開。我懷疑它在實踐中有很大的不同。 – eggyal