zend - 从控制器连接到数据库

时间:2012-07-03 07:13:49

标签: php mysql zend-framework database-connection

我为游戏设置了以下设置:

一个包含所有用户的数据库,一个用户未完成教程的数据库。在第一个数据库中,我有一个标志,告诉我用户“Gogu”是否完成了教程。如果他没有,我需要连接到第二个数据库并获取一些数据。经过一些研究,我发现了这个:connecting to two different databases with Zend Framework

问题是因为只有5%的用户会在教程进度中保持两个连接是没有用的所以我只需要在控制器中连接,得到我需要的东西并关闭连接。

知道怎么做吗?

1 个答案:

答案 0 :(得分:3)

您不必担心2个连接,因为Zend_Db“延迟加载”连接。来自ZF手册:

  

创建Adapter类的实例不会立即连接到RDBMS服务器。适配器保存连接参数,并在您第一次需要执行查询时按需进行实际连接。这可确保创建Adapter对象快速且廉价。即使您不确定在应用程序正在服务的当前请求期间是否需要运行任何数据库查询,也可以创建适配器实例。

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