Zend Framework 1.2在用户登录后选择数据库运行时


Zend Framework 1.2 select database runtime after user login

我有这个应用程序.ini

resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password = password
resources.db.params.dbname = zend_db

但我想在用户登录后选择数据库:例如

以ADMIN身份登录--->选择mysql-db:adminYYY

以TEST身份登录--->选择mysql-db:TestXXX

以cat身份登录--->选择mysql-db:catZZZ

您可能需要实例化到服务器的多个连接,每个连接使用Zend_Application_Resource_Multidb用于不同的数据库。类似这样的东西:

resources.multidb.dbadmin.params.host = localhost
resources.multidb.dbadmin.params.username = root
resources.multidb.dbadmin.params.password = password
resources.multidb.dbadmin.params.dbname = 'admin'
resources.multidb.dbtest.params.host = localhost
resources.multidb.dbtest.params.username = root
resources.multidb.dbtest.params.password = password
resources.multidb.dbtest.params.dbname = 'test'
resources.multidb.dbcat.params.host = localhost
resources.multidb.dbcat.params.username = root
resources.multidb.dbcat.params.password = password
resources.multidb.dbcat.params.dbname = 'cat'

因此,您可以编写一个自定义的auth类,用于检索每个数据库连接:

$resource = $bootstrap->getPluginResource('multidb');
$dbadmin = $resource->getDb('dbadmin');
$dbtest = $resource->getDb('dbtest');
$dbcat = $resource->getDb('dbcat');

或者在你的引导程序中使用这个技巧。

请参阅Zend_Application_Resource_Multidb