1

我有以下游戏设置:

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

问题是,由于只有 5% 的用户会在教程中进行,因此保持两个连接是没有用的,所以我只需要在控制器中进行连接,获取我需要的内容并关闭连接。

知道怎么做吗?

4

1 回答 1

3

您不必担心 2 个连接,因为 Zend_Db “延迟加载”连接。从采埃孚手册:

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

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

请注意,您提到的已接受答案中使用的方法从引导程序调用 $db->getConnection() 。不推荐这样做,因为它会破坏延迟加载的目的。您还可以考虑 Zend_Application_Resource_Multidb,这可能是一种更优雅的方法:

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

于 2012-07-03T07:21:19.550 回答