我要移植到的服务器没有启用 PDO 或 Mysqli 扩展(尽管它正在运行 PHP5)。我没有看到任何MySql.php
课程Zend/Db/Adapter
- 使用本机 MySQL 是否有一些约定?还是某种解决方法?也许使用旧版本的Zend
?
而且我无权修改php.ini
.
在从事 ZF 项目的同时,我也从事 Zend_Db 适配器的工作。
我们不能为普通的 MySQL 扩展支持 Zend_Db 适配器,因为 Zend_Db 的大部分依赖于准备好的语句,以及仅在 MySQLi 和 PDO_MySQL 扩展中发现的其他特性。
使用 MySQL 扩展没有任何优势。没有什么“原生”的。它只是 MySQL 客户端库的 API 绑定。
我建议您启用 MySQLi 或 PDO_MySQL 之一,但您说您无权执行此操作。那么你的选择是:
我推荐第一选择。
用户@farzad声称他已经为 ext/mysql 实现了 Zend_Db 适配器,但不得不牺牲 Zend_Db 的一些功能。
不,没有本机适配器。但是你可以尝试自己写,很简单。您甚至不需要创建其他适配器具有的所有方法(但您必须实现所有抽象方法 - 至少将它们留空,否则您将收到致命错误)。您可以使用 Mysqli 适配器(例如)作为您的基础(我认为,不是基类,而是代码示例)。
class My_Db_Adapter_MySQL extends Zend_Db_Adapter_Abstract {
// your code
}
然后只需使用 My_Db_Adapter_MySQL 作为适配器的名称
这个工作正常:https ://github.com/beberlei/Zend_Db-Adapter-for-ext-mysql
我同意其他答案,如果可以的话,你应该启用 mysqli 或 pdo_mysql 。由于我们不是生活在一个完美的血腥世界中,开发人员总是可以控制他们的部署环境,但是,我想我实际上也会给你你所要求的。