带有消息'SQLSTATE [HY000] [2003]的未捕获异常'PDOException'无法连接到MySQL服务器

时间:2010-09-09 13:31:08

标签: php mysql zend-framework

我正在使用Zend Framework,我的应用程序在localhost上工作,但是当我尝试连接到我在实时服务器上上传的数据库时,会产生无法连接到MySQL服务器的错误。我已经尝试处理异常并且Zend_Exception捕获它(“或许factory()无法加载指定的Adapter类”)。我已经通过电子邮件发送了网站管理员,他告诉我Phpmyadmin工作正常,所以将php连接到mysql应该没问题。我还可以做些什么?产生错误的行如下:

    $db = Zend_Registry::get('db');
    $sql = 'SELECT * FROM department';
    $result = $db->fetchAll($sql);  

有什么具体的东西我可以请网站管理员查看吗?

编辑:

在我的引导程序中:

public function _initDB()
{   

    $dbOptions = $this->getOption('db');
    $db = Zend_Db::factory($dbOptions['adapter'], $dbOptions['params']);
    Zend_Registry::set('db', $db);
    Zend_Db_Table_Abstract::setDefaultAdapter($db);
}

在我的application.ini中:

db.adapter = PDO_MYSQL
db.params.host = agila.upm.edu.ph
db.params.username = FacultyDB 
db.params.password = *********
db.params.dbname = FacultyDB

1 个答案:

答案 0 :(得分:2)

既然您确信application.ini中的设置正常,那么您是否在引导程序中初始化数据库?

protected function _initDb() {

    $registry = Zend_Registry::getInstance();

    $db = Zend_Db::factory($registry->config->db->adapter,
                    $registry->config->db->database->toArray());

    Zend_Db_Table::setDefaultAdapter($db);
    Zend_Registry::set('db', $db);
}

在application.ini中尝试:

[db]
adapter = PDO_MYSQL
database.host = agila.upm.edu.ph
database.username = FacultyDB 
database.password = *********
database.dbname = FacultyDB 

尝试使用该代码和我的引导代码进行配置,看看它现在是否有效。我记得有一些关于zend_db对application.ini的配置很挑剔。我的错误可能是错误的。