2009-01-29 189 views

回答

5

由於mysql_close()文件說:

使用mysql_close()通常沒有必要 ,作爲非持久性開放 鏈接在腳本執行的 結束自動關閉。見 也釋放資源。

由於連接由PHP管理,所以不應該存在安全風險。

0

我不能說這個頁面是否關閉了連接(這取決於管理它的任何東西),但總的來說,當你完成時關閉它是一個好主意,因爲長時間打開它可能會導致同時處理的其他頁面出現飢餓問題,這些頁面要連接到相同的數據源。

+0

特別是如果應用程序正在使用連接池。 – 2009-01-29 16:31:21

1

PHP是假設是一個「無共享」體系結構。也就是說,所有資源都分配給每個請求,然後在請求完成後清理。所以像內存,文件句柄,套接字,數據庫連接等資源應該被釋放或關閉。

但是,您可以使用persistent database connections,它們未關閉,但會重新用於下一個請求。如果你這樣做,就會有一些安全隱患。任何連接狀態都由下一個PHP請求繼承。因此,如果您的應用程序使用數據庫用戶定義的變量或臨時表,或者甚至使用LAST_INSERT_ID(),則下一個PHP請求可能會看到它不應該看到的特權數據。

如果關閉數據庫連接以避免這種情況發生,那麼基本上會破壞持久連接的值。所以你不妨使用普通的數據庫連接。