2009-11-02 88 views
2

當我在我的瀏覽器中加載一個php頁面時,它連接到數據庫並運行一些sql ...假設我現在跟着一個鏈接,它會帶我到同一網站中的另一個頁面。發生了什麼服務器明智?我的第一次連接到數據庫關閉了,又重新打開了嗎?這在大多數情況下會發生什麼?PHP和db連接

+0

非常感謝 – Clara 2009-11-02 18:50:52

回答

1

是的,在大多數情況下,您的數據庫連接將關閉並重新打開。特別是如果每​​個頁面都重新啓動PHP解釋器,那麼它別無選擇,只能這樣做。

我相信典型的例外情況(儘管我自己從來沒有用過這種方式)就是使用類似mod_php.so(對於Apache)的地方,並且您將數據庫連接對象作爲用戶會話狀態的一部分進行存儲。但我不認爲這是推薦的做法。

請參閱http://php.net/manual/en/features.persistent-connections.php瞭解更多信息。

0

這是通常的情況是。但是如果你在談論MySQL,你可以使用mysql_pconnect來保持持久連接。

2

很可能一旦頁面被PHP處理後,連接到數據庫的連接就會關閉,顯然PHP的結果會被髮送到瀏覽器並被用戶查看。

假設你正在運行MySQL,這不會是這種情況的唯一原因是如果PHP腳本使用mysql_pconnect,其中連接將保持打開狀態。然而,通常不使用這種做法,除非MySQL服務器和PHP服務器具有其他進程未使用的低帶寬連接。

0

這取決於如何開發PHP。如果它在每次交易後被編碼爲關閉,那麼是的,每次查看頁面時都會重新打開。

還有一個數據庫連接池的概念。當使用連接時,它不會關閉,但會被放置到等待再次使用的連接池中。一旦經過了指定的時間而沒有使用連接,它就會關閉以節省資源。

池化連接節省了處理時間,不得不重新打開每個頁面重新加載的連接。