【问题标题】:Zend Framework won't connect to MySQL databaseZend Framework 不会连接到 MySQL 数据库
【发布时间】:2012-09-10 03:54:20
【问题描述】:

我正在开始一个新项目,并使用我喜欢的 PHP Zend 框架和 MySQL 数据库设置。

由于某种原因,我无法正确设置 Zend_Db_Adapter,因此它会成功连接到数据库。我已经在 MySQL 中设置了我的数据库,并且可以使用 mysql_connect() 连接到它,但不能使用我过去项目中使用的代码?真的很奇怪!

这是我正在使用的代码...

require_once 'Zend/Registry.php';
require_once 'Zend/Db/Adapter/Pdo/Mysql.php';

// Set the database connection information
$params = array('host' =>'localhost',
                'username'  =>'root',
                'password'  =>'12345',
                'dbname'    =>'testdb');

// Assign the database connection to the registry
$db = new Zend_Db_Adapter_Pdo_Mysql($params);
$db->setFetchMode(Zend_Db::FETCH_OBJ);
Zend_Registry::set('db',$db);

请记住,当我使用 mysql_connect() 时,上述参数可以正常工作,但是每当我尝试使用上述参数时,都会出现控制器异常错误?

【问题讨论】:

  • 采埃孚什么版本?看@ Zend_Db_Factory。
  • 它的版本是 1.12.0 - 很确定我已经尝试过 Zend_Db_Factory 但会再试一次。谢谢
  • 如果不解决,控制器异常错误是什么?可以诱捕和展示吗?
  • 能否在每行的末尾加上die; 以找出是哪一行引发了异常?
  • 你应该在application.ini中指定你的连接参数。

标签: php mysql database zend-framework


【解决方案1】:

尝试使用application.ini方式:

resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = "12345"
resources.db.params.dbname = "testdb"


然后,如果你想在 bootstrap 中连接,你可以手动进行(bootstrap 最终会自己调用它):

$this->bootstrap('db');


然后访问 $db 适配器:

$db = Zend_Db_Table::getDefaultAdapter();



无论如何,如果您更喜欢您的方法,请向我们发送有关异常的更多数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多