我移植到的服务器没有启用PDO或Mysqli扩展(虽然它运行的是PHP5)。我在MySql.php
中没有看到任何Zend/Db/Adapter
类 - 是否有一些使用原生MySQL的约定?还是某种解决方法?也许使用较旧版本的Zend
?
我无权修改php.ini
。
答案 0 :(得分:3)
当我参与ZF项目时,我在Zend_Db适配器上工作了很多。
我们couldn't support用于普通MySQL扩展的Zend_Db适配器,因为Zend_Db的大部分依赖于预处理语句,以及仅在MySQLi和PDO_MySQL扩展中找到的其他功能。
使用MySQL扩展没有任何好处。关于它没有任何“原生”。它只是MySQL客户端库的API绑定。
我建议你启用一个MySQLi或PDO_MySQL,但是你说你无权访问它。然后你的选择是:
我推荐第一个选择。
用户@farzad claims他为ext / mysql实现了Zend_Db适配器,但不得不牺牲Zend_Db的一些功能。
答案 1 :(得分:1)
不,没有原生适配器。但是你可以尝试编写自己的,这很简单。您甚至不需要创建其他适配器具有的所有方法(但您必须实现所有抽象方法 - 至少将它们留空,否则您将获得致命错误)。您可以使用Mysqli适配器(例如)作为您的基础(我认为,不是基类,而是代码示例)。
class My_Db_Adapter_MySQL extends Zend_Db_Adapter_Abstract {
// your code
}
然后只使用My_Db_Adapter_MySQL作为适配器的名称
答案 2 :(得分:0)
这个工作正常:https://github.com/beberlei/Zend_Db-Adapter-for-ext-mysql
我同意其他答案,如果可以,你应该启用mysqli或pdo_mysql。因为我们并没有生活在一个完美的血腥世界,开发人员总是可以控制他们的部署环境,但我认为我实际上也会给你你所要求的东西。