簡體   English   中英

mysql pdo連接沒有關閉?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM