database - Zend Framework 多数据库问题

标签 database zend-framework

application.ini

resources.multidb.db1.adapter = "pdo_mysql"
resources.multidb.db1.host = "localhost"
resources.multidb.db1.username = "root"
resources.multidb.db1.password = "root"
resources.multidb.db1.charset = "utf8"
resources.multidb.db1.dbname = "admin"

resources.multidb.db2.adapter = "pdo_mysql"
resources.multidb.db2.host = "localhost"
resources.multidb.db2.username = "root"
resources.multidb.db2.password = "root"
resources.multidb.db2.dbname = "hp"
resources.multidb.db2.charset = "utf8"
resources.multidb.db2.default = true

Bootstrap.php:

        protected function _initDb(){           
            $resources = $this->getPluginResources('multidb');          
            Zend_Registry::set('db1', $resource->getDb('db1'));
            Zend_Registry::set('db2', $resource->getDb('db2'));
        }

类方法:

Array
(
    [0] => _initDb
    [1] => _initPrefix
    [2] => _initSession
    [3] => _initRouters
    [4] => _initAutoloader
    [5] => _initControllerHelper
    [6] => __construct
    [7] => run
    [8] => setResourceLoader
    [9] => getResourceLoader
    [10] => getAppNamespace
    [11] => setAppNamespace
    [12] => setOptions
    [13] => getOptions
    [14] => hasOption
    [15] => getOption
    [16] => mergeOptions
    [17] => getClassResources
    [18] => getClassResourceNames
    [19] => registerPluginResource
    [20] => unregisterPluginResource
    [21] => hasPluginResource
    [22] => getPluginResource
    [23] => getPluginResources
    [24] => getPluginResourceNames
    [25] => setPluginLoader
    [26] => getPluginLoader
    [27] => setApplication
    [28] => getApplication
    [29] => getEnvironment
    [30] => setContainer
    [31] => getContainer
    [32] => hasResource
    [33] => getResource
    [34] => __get
    [35] => __isset
    [36] => bootstrap
    [37] => __call
    [38] => _bootstrap
    [39] => _executeResource
    [40] => _loadPluginResource
    [41] => _markRun
    [42] => _resolvePluginResourceName
)

当我运行应用程序时,它返回错误:调用非对象上的成员函数 getDb()

有人可以帮助我吗?

谢谢!

抱歉我的英语不好。

最佳答案

您的函数中有拼写错误 -

protected function _initDb(){           
$resources = $this->getPluginResources('multidb');
// changed $resource to $resources
Zend_Registry::set('db1', $resources->getDb('db1'));
Zend_Registry::set('db2', $resources->getDb('db2'));
}

关于database - Zend Framework 多数据库问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15941831/

相关文章:

sql - 超过 4000 个字符在 Oracle 上给出字符串文字太长错误

c# - 无法用两个表创建外键

mysql - 在 MySQL 中,如何基于子选择 "where"循环进行选择

sql - 字符串 '{?District}' 在 SQL 中的计算结果是什么

php - bootstrap 通常如何工作,尤其是在 Zend Framework 中?

MySQL auto_increment 不递增

php - ZF + 学说 2 : Heavy model classes or Lightweight model + Service layer?

php - Zend_Db_Table 加入查询 vs 数据库 View

zend-framework - 无法在 WAMP 上运行 zend 框架 MVC 应用程序

zend-framework - 使 zend 框架错误报告更加用户友好