Php 共享主机上未加载PDO扩展
当我试图运行Zend_Db_Adapter_Pdo_Mysql的构造函数时,我遇到了这个错误: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(
此适配器需要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');