Для этого адаптера требуется расширение 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 

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

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

 extension=pdo.so extension=pdo_mysql.so 

Что для Linux, и:

 extension=php_pdo.dll extension=php_pdo_mssql.dll 

Что для Windows: вы должны выбрать, в зависимости от используемой системы.

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

Но учтите, что вы использовали:

 extension=php_pdo_mssql.dll 

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

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

 extension=php_pdo_mysql.dll 

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

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

  • В начале phpinfo() он указывает, какой файл php.ini загружен; убедитесь, что вы изменили правильную.
  • Проверьте, ниже в файле, если есть раздел о pdo_mysql
    • Если нет, проверьте Apache's error_log, на всякий случай 😉

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

Сегодня я переместил один веб-сайт с нашего тестового сервера на клиентский сервер и получил такую ​​ошибку, что для этого адаптера требуется расширение PDO, но расширение не загружено. Я думал, что должно быть расширение phdo pdo.so, которое не установлено на сервере. После распознавания проблемы я искал файл php.ini для проверки расширения, но из-за совместного хостинга они не предоставили мне файл ini.

Здесь, в этом посте, я пытаюсь описать, как решить такую ​​проблему, очень легко, и вы можете решить проблему, используя приведенные ниже шаги:

Если вы хотите узнать больше о PDO, посмотрите http://php.net/manual/en/ref.pdo-mysql.php

Если у вас есть доступ к файлу php.ini, проверьте

 ;extension=pdo_mysql.so 

Просто вам нужно раскомментировать линию для активации, чтобы она выглядела как

 extension=pdo_mysql.so 

Сохраните файл и перезапустите сервер.

Если у вас нет доступа к файлу php.ini, выполните следующие действия:

Шаг 1. Пожалуйста, проверьте свой каталог установки Magento, и мне нужен файл с именем php.ini.sample.

Шаг 2. Теперь переименуем файл из php.ini.sample в php.ini

Шаг 3. Вставьте в него код ниже

 extension = pdo.so extension = pdo_sqlite.so extension = sqlite.so extension = pdo_mysql.so 

Шаг 4. Теперь обновите кеш браузера, и проблема решена.

Если у вас есть учетная запись хостинга, и вы ничего не можете сделать из-за ограничения на основные файлы конфигурации сервера, и вы не можете перезапустить apache. Вы можете обойти эту проблему, изменив версию php с «Выбрать версию PHP» таким образом, вы перезапустите настройки. В моем случае я попытался отредактировать php.ini, чем php5.ini также добавил файл .user.ini, и в результате я получил эту ошибку: для этого адаптера требуется расширение PDO, но расширение не загружено. Теперь моя проблема решена, это решение может работать на других хостингах не только godaddy, если вы не системный администратор !!!