我正在使用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
答案 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的配置很挑剔。我的错误可能是错误的。