Php 共享主机上未加载PDO扩展

Php 共享主机上未加载PDO扩展,php,zend-framework,web,pdo,Php,Zend Framework,Web,Pdo,当我试图运行Zend_Db_Adapter_Pdo_Mysql的构造函数时,我遇到了这个错误: 此适配器需要PDO扩展,但未加载扩展 我使用共享主机,无法更改php.ini 有什么解决方案吗?尝试切换到Mysqli或其他适配器 应该相当简单,根据Zend应用程序的配置,更改 db适配器值 在json类型配置中,它是 "db": { "adapter": "mysqli", ... } Php阵列配置: array( 'database' => array(

当我试图运行Zend_Db_Adapter_Pdo_Mysql的构造函数时,我遇到了这个错误:

此适配器需要PDO扩展,但未加载扩展

我使用
共享主机
,无法更改
php.ini


有什么解决方案吗?

尝试切换到Mysqli或其他适配器

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

在json类型配置中,它是

"db": {
    "adapter": "mysqli",
    ...
}
Php阵列配置:

 array(
    'database' => array(
        'adapter' => 'Mysqli',
Ini类型:

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

$db = new Zend_Db_Adapter_Mysqli();

在更换主机提供商的过程中,您可以尝试以下方法:

  • 使用
    Zend\u Db\u适配器\u Mysqli
    (假设
    Mysqli
    可用)
  • 使用
    mysql.*
    -函数编写您自己的适配器(或使用
  • 尝试动态加载PDO扩展(假设它可用,并且enable_dl打开,safe_mode关闭):

我必须写
dl('pdo.so');dl('pdo_mysql.so')?我认为在调用应用程序的引导方法之前,最好的位置是“index.php”。但是,如果您在bootstrap.php中初始化数据库,您也可以在数据库初始化之前将其放在那里。我尝试此操作,并在…
中调用未定义的函数dl()。关于“dl()”-错误:显然,您的主机上没有dl()。我在谷歌上搜索了一下,找到了。检查它是否有效(我还没有测试过)。
Mysqli
适配器不可用,我收到此错误
此适配器需要Mysqli扩展,但扩展未加载
    dl('pdo.so');
    dl('pdo_mysql.so');