2009-07-12 119 views
9

我想让我的ZEND应用程序运行在UNIX上运行的apache服务器上。最初,我的主人因此未给PDO的支持,我把它通过请求他们用mail.But现在我得到MySQL驱动程序当前未安装的错误说Zend应用程序没有安装MySql驱动程序错误

堆栈跟踪就像启用:

An error occurred 
Application error 
Exception information: 

Message: The mysql driver is not currently installed 
Stack trace: 

#0 /home/windchim/worminc/library/Zend/Db/Adapter/Abstract.php(770): Zend_Db_Adapter_Pdo_Abstract->_connect() 
#1 /home/windchim/worminc/library/Zend/Db/Adapter/Abstract.php(840): Zend_Db_Adapter_Abstract->quote('aaditya258', NULL) 
#2 /home/windchim/worminc/library/Zend/Auth/Adapter/DbTable.php(354): Zend_Db_Adapter_Abstract->quoteInto('`password` = MD...', 'aaditya258') 
#3 /home/windchim/worminc/library/Zend/Auth/Adapter/DbTable.php(285): Zend_Auth_Adapter_DbTable->_authenticateCreateSelect() 
#4 /home/windchim/worminc/library/Zend/Auth.php(117): Zend_Auth_Adapter_DbTable->authenticate() 
#5 /home/windchim/worminc/application/controllers/LoginController.php(117): Zend_Auth->authenticate(Object(Zend_Auth_Adapter_DbTable)) 
#6 /home/windchim/worminc/library/Zend/Controller/Action.php(503): LoginController->processAction() 
#7 /home/windchim/worminc/library/Zend/Controller/Dispatcher/Standard.php(285): Zend_Controller_Action->dispatch('processAction') 
#8 /home/windchim/worminc/library/Zend/Controller/Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) 
#9 /home/windchim/public_html/worm/index.php(47): Zend_Controller_Front->dispatch() 
#10 {main} 

这怎么解决?请帮助

回答

16

与mysql_ *函数不同,PDO支持多种数据库引擎。 要做到这一点,它需要每个驱动程序库。

你已经安装了PDO的“核心”,但没有安装MySQL驱动程序 - 只需安装(称为pdo_mysql),一切都会好的。

你的php.ini应该有这些(Windows或Linux)之一:

extension=php_pdo_mysql.dll 
extension=php_pdo_mysql.so 
+0

我是否需要安装某些东西或者只是输入到php.ini中? – Arc 2009-07-12 09:51:19

4

在php.ini文件,你刚刚启用以下行 延长= php_pdo_mysql.dll(手段删除评论在它的前面)

那么它将被正确执行。

4

正如其他人所说的,您需要启用pdo_mysql扩展。

但是,运行php(5.3)作为我的机器上的apache(2.2)模块(Windows 7),它仍然无法正常工作。我想出php.ini中的extension_dir值需要使用绝对路径来设置(相对就是行不通)!

希望这可以帮助你们中的一些人!

-1

F.i.检查 的error_reporting = E_ALL &〜E_DEPRECATED &的拼写〜E_STRICT (应该是这样的,在生产阶段)

如果键入 的error_reporting(值); 或这样的事情(通常用于测试,“价值”可能是“0”)

你可能会得到这样的错误 “MySQL驱动程序当前未安装” 如果使用

因此,任何语法错误在php.ini内可能会产生这个错误。 如果您仔细设置系统,您可能会很容易感到困惑,因为您知道,在安装数据库或设置时没有错误。 如果everthing else是正确的,那么请在php.ini中查找语法错误。