Zend Framework 1.2 выбирает время выполнения базы данных после входа пользователя

У меня есть это application.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

войдите как ТЕСТ —> выберите MySQL DB: TestXXX

войдите как кот —> выберите mysql db: catZZZ

1

Решение

Скорее всего, вам придется создать несколько соединений с вашим сервером, каждое для отдельной базы данных, используя 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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]