5

当我尝试使用 Zend_Db_Table_Abstract 类的 fetchall 方法时,出现以下异常...

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 服务器)

4

4 回答 4

9

首先,你不能同时拥有:

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()'s 输出的开头,它指示php.ini加载了哪个文件;确保你修改了正确的。
  • 检查,在文件的下方,如果有关于pdo_mysql
    • 如果没有,请检查 Apache 的 error_log,以防万一;-)
于 2010-03-05T12:21:21.463 回答
0

从 PDO 支持的 Mabe 切换到 Mysqli 有帮助,它们在 ZF 中是可切换的(我这样做了)。

于 2010-03-05T12:22:03.317 回答
0

今天,我将一个网站从我们的测试服务器移动到客户端服务器,并收到这样的错误,即此适配器需要 PDO 扩展,但未加载扩展。我在想必须有 pdo.so php 扩展,它没有安装在服务器上。发现问题后,我一直在寻找 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 步。现在刷新浏览器缓存,问题已解决。

于 2016-08-05T14:11:06.293 回答
-2

如果您在 godaddy 托管帐户上,并且由于对服务器主要配置文件的限制而无法执行任何操作,并且您无法重新启动 apache。您可以通过从“选择 PHP 版本”更改 php 版本来绕过此问题,这样您将重新启动设置。在我的情况下,我尝试编辑 php.ini 而不是 php5.ini 还添加了 .user.ini 文件,结果我收到了这个错误:此适配器需要 PDO 扩展,但未加载扩展现在我的问题解决了,如果您不是系统管理员,此解决方案不仅可以在 Godaddy 上运行,还可以在其他主机上运行!!!

于 2017-01-04T08:11:44.790 回答