[英]mysql pdo connection is not closing?
在我的PHP腳本中,當我在某些PDO mysql連接上執行查詢時,在檢查mysql日志時,我看不到該連接已關閉。
郵遞區號:
?php
$db = new PDO('mysql:host=HOST;dbname=DB',USER,PASSWORD);
$db->exec("SHOW TABLES");
$db = null;
?>
MySQL日志:
180312 18:31:45 9048429 Connect USER@HOST on DB
9048429 Query SHOW TABLES
但是,當我刪除查詢時,可以在Mysql日志上看到mysql連接已關閉。
php代碼:
?php
$db = new PDO('mysql:host=HOST;dbname=DB',USER,PASSWORD);
$db = null;
?>
MySQL日志:
180312 18:33:54 9048515 Connect USER@HOST on DB
9048515 Quit
我必須在腳本上明確關閉mysql連接,以防止連接過多。 我該怎么做?
使用上面的代碼,Mysql連接成功關閉。 只是退出連接沒有出現在Mysql日志中。
當我檢查Mysql進程列表時,已驗證連接已成功關閉。
除上述問題外,如果存在要使用pdo執行的查詢語句,則也需要銷毀pdo語句處理程序對象以關閉mysql連接,如php-mysql-pdo-connection-not-closing-without-destroying中所述-語句處理程序 。
如文檔中所述:“成功連接到數據庫后,PDO類的實例將返回到腳本。該連接在該PDO對象的生存期內保持活動狀態。要關閉該連接,您需要通過以下方法銷毀該對象:確保刪除對它的所有剩余引用,方法是將NULL賦給保存對象的變量。如果不明確地執行此操作,PHP將在腳本結束時自動關閉連接。”
因此,在您的情況下,設置$db=null;
應該做到的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.