使用Zend_Db_Adapter_PDO_Mysql类连接到mysql数据库

时间:2012-07-11 06:00:19

标签: php mysql zend-framework

如何正确连接mysql db?在我的application.ini文件中,我已经放置了所有数据库详细信息:

[master]
adapter = PDO_MYSQL
params.host = localhost
params.username = root
params.password = ''
params.dbname = accounts_db

我想获取这些详细信息并连接到我的数据库。

3 个答案:

答案 0 :(得分:1)

尝试这个工作

resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password = 
resources.db.params.dbname = accounts_db

在我的网站中,它将完美运作

答案 1 :(得分:1)

当它是默认的mysql数据库适配器时,您可以在底部添加该行,在这种情况下它将是自动的。用于Zend_Db_Table对象等。

resources.db.adapter="pdo_mysql"
resources.db.params.host="localhost"
resources.db.params.username="username"
resources.db.params.password="pass"
resources.db.params.dbname="dbname"                       
resources.db.isDefaultTableAdapter=true   

在其他地方,您可以使用

在任何地方获取适配器
Zend_Db_Table::getDefaultAdapter();
祝你好运。

答案 2 :(得分:1)

Zend Framework不是启动应用程序开发的最简单框架。我最好的建议是开始阅读quickstart documentation,尤其是涉及Zend_ApplicationZend_DbZend_Layout以及Zend_Controller的章节。

要回答您的问题,将数据库配置添加到application.ini不会设置数据库连接。您应该引导应用程序资源:

[production]

; Database (production)
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "my_user_who_is_not_root"
resources.db.params.password = "my_strong_password"
resources.db.params.dbname = "accounts_db"
resources.db.isDefaultTableAdapter = true

; Other configurations
; ...

[development : production]

; Database (development settings)
resources.db.params.username = "root"
resources.db.params.password = ""
resources.db.params.dbname = "accounts_db_dev"

此时,您的数据库连接已准备好查询服务器

进入您的控制器(或其他任何东西),您可以使用以下方法检索连接:

Zend_Db_Table::getDefaultAdapter();

您也可以在Bootstrap内添加对Zend_Register的连接的引用:

protected function _initDbRegister()
{
    $db = $this->bootstrap('Db')->getResource('Db');
    Zend_Register::set('Zend_Db', $db);
}

稍后,您可以致电Zend_Register::get('Zend_Db')来获取实例。