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

标签 php mysql zend-framework frameworks database-connection

我有这个application.ini

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

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

以管理员身份登录 ---> 选择 mysql 数据库:adminYYY

以 TEST 身份登录 ---> 选择 mysql 数据库:TestXXX

以 cat 身份登录 ---> 选择 mysql 数据库: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'

因此您可以编写一个自定义的身份验证类,您将使用它来检索每个数据库连接:

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

或者在你的 bootstrap 中使用这个技巧。

参见 Zend_Application_Resource_Multidb

关于php - Zend Framework 1.2 在用户登录后选择数据库运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25998980/

相关文章:

php - 在 Laravel 5.4 中将文件存储在公共(public)目录和存储中的区别

php - 将 href (html) 标签与 PHP 一起使用

javascript - 如何将 php 添加到 url?

mysql,如何设置列默认值当前年份

php - 在 PHP 中将多个 SCSS 文件编译到一个 CSS 文件中

MySQL - 更改 FT_MIN_WORD_LEN

mysql - 用于获取工作日的单个数据库查询(mysql)

php - Zend 框架和 Wordpress 集成

php - 动态断言 Zend_ACL - 在 isAllowed 上创建不需要的对象

mysql - 将 FORCE INDEX 与 zend 结合使用