2012-03-22 88 views
0

我在我的項目中遇到了一個情況,那就是我必須繼續使用大量的SQL查詢。我在這裏有兩個問題,一個是,一旦與數據庫建立連接,它是否會在我的所有網頁中保持不變?即我的客戶端始終與mySQL服務器保持連接。如果是,那麼它是一個安全的選擇,以我的MySQL連接標識保存爲一個會話變量,即在會話變量中傳遞mySQL鏈接標識符

$_SESSION['link'] = $link //($link is mysql link identifier) 

,因此使用這個變量在我的網頁,從而只有一連接到數據庫。我不能使用

mysql_pconnect(). 

我的第二個問題是,保持連接和從數據庫中斷開連接一次是好的。這是一個很好的做法嗎?我使用mySQL服務器,但只有有限的訪問權限。

+0

我會遠離在會話中存儲對數據庫的引用。你在使用任何類型的框架?如果沒有,你可能會考慮使用[Singleton模式](http://php.net/manual/en/language.oop5.patterns.php) – augustknight 2012-03-22 22:42:32

+0

更好的參考:[Singleton模式](http:// www.ibm.com/developerworks/library/os-php-designptrns/#N10124) – augustknight 2012-03-22 22:46:51

回答

1

我的意見是,當您嘗試將$link存儲到會話中時,您不保存也不會贏取任何內容。

您必須爲每個頁面數據加載連接到sql server。與包含文件相同。如果這個變量存儲在會話中或者不會帶來同樣的效果 - 最終計數的內存成本相同。

現在必須 - 加載頁面後顯示結束:)連接丟失,只有您的會話內容離開。 ((是的,它取決於你的虛擬主機設置,如果它正在關閉數據庫連接自動或在一段時間內或等待,直到你會用命令來做)最後是最好的節省資源)

你應該開始考慮將加載的contnet放到會話或文件中。然後,您可以保存來自外部資源的連接和數據加載,這可能是您的基本想法。