Расширение PDO требуется для этого адаптера, но расширение не загружается

Я получаю следующее исключение, когда я пытаюсь использовать fetchall метод класса Zend_Db_Table_Abstract...

An error occurred4545
EXCEPTION_OTHER
Exception information:
Message: The PDO extension is required for this adapter but the extension is not loaded 

Stack trace:
#0 D:\www\TestProject\library\Zend\Db\Adapter\Pdo\Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect()
#1 D:\www\TestProject\library\Zend\Db\Adapter\Abstract.php(448): Zend_Db_Adapter_Pdo_Mysql->_connect()
#2 D:\www\TestProject\library\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('DESCRIBE `album...', Array)
#3 D:\www\TestProject\library\Zend\Db\Adapter\Pdo\Mysql.php(156): Zend_Db_Adapter_Pdo_Abstract->query('DESCRIBE `album...')
#4 D:\www\TestProject\library\Zend\Db\Table\Abstract.php(823): Zend_Db_Adapter_Pdo_Mysql->describeTable('albums', NULL)
#5 D:\www\TestProject\library\Zend\Db\Table\Abstract.php(862): Zend_Db_Table_Abstract->_setupMetadata()
#6 D:\www\TestProject\library\Zend\Db\Table\Abstract.php(969): Zend_Db_Table_Abstract->_setupPrimaryKey()
#7 D:\www\TestProject\library\Zend\Db\Table\Select.php(100): Zend_Db_Table_Abstract->info()
#8 D:\www\TestProject\library\Zend\Db\Table\Select.php(78): Zend_Db_Table_Select->setTable(Object(Application_Model_Albums))
#9 D:\www\TestProject\library\Zend\Db\Table\Abstract.php(1005): Zend_Db_Table_Select->__construct(Object(Application_Model_Albums))
#10 D:\www\TestProject\library\Zend\Db\Table\Abstract.php(1303): Zend_Db_Table_Abstract->select()
#11 D:\www\TestProject\application\controllers\IndexController.php(17): Zend_Db_Table_Abstract->fetchAll()
#12 D:\www\TestProject\library\Zend\Controller\Action.php(513): IndexController->indexAction()
#13 D:\www\TestProject\library\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('indexAction')
#14 D:\www\TestProject\library\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#15 D:\www\TestProject\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch()
#16 D:\www\TestProject\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#17 D:\www\TestProject\public\index.php(26): Zend_Application->run()
#18 {main}  
Request Parameters:
array (
  'controller' => 'index',
  'action' => 'index',
  'module' => 'default',
)  

Я добавил следующие строки в файле php.ini

extension=pdo.so
extension=pdo_mysql.so

extension=php_pdo.dll 
extension=php_pdo_mssql.dll 

Также у меня есть пакет MySQL PDO, установленный в моей системе. Но тем не менее я получаю вышеупомянутое исключение.... (Также перезапущенный сервер Apache)

5
задан neo 5 March 2010 в 12:17
поделиться

2 ответа

Прежде всего, вы не можете иметь оба :

extension=pdo.so
extension=pdo_mysql.so

Которые для Linux, и :

extension=php_pdo.dll 
extension=php_pdo_mssql.dll 

Которые для windows: вы должны выбрать, в зависимости от системы, которую вы используете.

Поскольку вы находитесь на windows, вы должны использовать версию .dll .


Но обратите внимание, что вы использовали :

extension=php_pdo_mssql.dll 

т.е. вы загрузили расширение pdo_mssql - которое предназначено для Microsoft SQL Server, а не для MySQL.

Вместо этого вам следует загрузить расширение для MySQL :

extension=php_pdo_mysql.dll 

После исправления этого, перезапустите Apache; и все должно наладиться.


Если ситуация не улучшается, проверьте вывод phpinfo() :

  • В начале вывода phpinfo() указано, какой php.ini файл загружен; убедитесь, что вы изменили правильный файл.
  • Проверьте в самом низу файла, есть ли там раздел о pdo_mysql
    • Если нет, проверьте на всякий случай журнал ошибок Apache ;-)
8
ответ дан 14 December 2019 в 13:33
поделиться

Mabe, переключение с PDO на Mysqli помогает, их можно переключать в ZF (я так и сделал).

0
ответ дан 14 December 2019 в 13:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: