共享主机上没有加载PDO扩展


The PDO extension is not loaded on Shared host

当我尝试运行Zend_Db_Adapter_Pdo_Mysql的构造函数时,我得到这个错误:

The PDO extension is required for this adapter but the extension is not loaded

我使用shared host,我不能改变php.ini

有解决办法吗?

从改变你的主机提供商的一部分,你可以尝试以下事情:

  • 使用Zend_Db_Adapter_Mysqli(假设mysqli可用)
  • 使用mysql_* -函数编写自己的适配器(或使用现有的)
  • 尝试动态加载PDO扩展(假设它是可用的,enable_dl是开启的,safe_mode是关闭的):
    dl('pdo.so');
    dl('pdo_mysql.so');

尝试切换到mysql或其他适配器?

应该相当简单,根据Zend应用程序的配置,更改Db适配器值

在json类型配置中是

"db": {
    "adapter": "mysqli",
    ...
}

数组配置:

 array(
    'database' => array(
        'adapter' => 'Mysqli',

Ini类型:

db.adapter = "Mysqli"

当然,如果您正在通过配置创建db适配器并将其用作引导资源,则这就是全部。如果没有,只需实例化另一个db适配器:

$db = new Zend_Db_Adapter_Mysqli();