2012-07-03 73 views
1

連接到數據庫中,我有一個遊戲的以下設置:的Zend - 從控制器

與所有用戶

一個數據庫,一個數據庫未完成教程用戶。在第一個數據庫中,我有一個標誌,告訴我用戶「Gogu」是否完成了教程。如果他沒有,我需要連接到第二個數據庫並獲取一些數據。經過一番研究,我發現這個:connecting to two different databases with Zend Framework

的事情是,因爲用戶只喜歡5%將在教學進度是沒有用的,以保持兩個連接,所以我只需要同時在控制器連接,得到我需要什麼,並關閉連接。

任何想法如何做到這一點?

回答

3

您不必擔心2個連接,因爲Zend_Db的「懶加載」的連接。從ZF手冊:

創建Adapter類的實例不會立即連接到RDBMS服務器。適配器會保存連接參數,並在您首次執行查詢時按需進行實際連接。這確保了創建一個適配器對象是快速和便宜的。即使您不確定是否需要在應用程序提供的當前請求期間運行任何數據庫查詢,也可以創建適配器的實例。

http://framework.zend.com/manual/en/zend.db.adapter.html#zend.db.adapter.connecting.getconnection

只要注意的是,在accepted answer使用的方法你提到從引導調用$ DB->的getConnection()。這不被推薦,因爲它會打敗延遲加載的目的。你也可以考慮Zend_Application_Resource_Multidb,這也許是一個更好的方法:

http://framework.zend.com/manual/en/zend.application.available-resources.html#zend.application.available-resources.multidb