2009-07-12 155 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中查找語法錯誤。