简而言之
,我们需要从 mysqli 切换到 mysql。我们想要一个包装类,它使用 PHP 的 mysql 扩展的函数,但支持 mysqli 的以下函数的功能 -
query(), real_escape_string(), multi_query(), store_result(), more_results() , next_result(), use_result(), mysqli_connect_error().
例如,使用 mysql_pconnect() 进行持久连接。
基本上,它将确保我们对所有函数都有相同的逻辑和返回类型,我们将必须根据所有相关函数的文档进行验证,并且可能还必须研究 mysqli 函数的实现。
但是,有没有人想出类似的东西?
背景
我们在系统中使用Tera-WURFL进行移动设备检测。我们遇到了一些问题,因为我们的生产 PHP 版本是 5.2.6,而 TeraWurfl 使用数据库连接器 TeraWurflDatabase_MySQL5.php,它使用以下内容:
- mysqli_connect_error(),直到 php 5.2.9 才支持(我们使用 php 5.2.6)
- 在 php 5.3.0 之前不支持的持久连接(我们使用 php 5.2.6)
直到 php 5.3.0 才完全支持 mysqli。
所以,我们有两个选择——
升级 PHP - 但是,这需要大量的回归测试,因为我们使用的 OpenX 版本似乎没有针对这些最新的 PHP 版本进行测试。我们系统的核心在于 Openx。
编写一个包装类以具有与 MySQLi 相同的面向对象的 API。这看起来更简单。
因此,我们决定估计提出包装类所需的工作量。这是我们的想法——
由于 PHP 仅为其 mysql 扩展提供过程接口并TeraWurflDatabase_MySQL5.php
以面向对象的方式调用 mysqli 的函数,因此我们必须创建一个包装类,该类将提供与 mysqli 类相同的接口,以便切换到 mysql。
我们可以创建与 mysqli 中名称相同的函数,例如 query()、store_result() 并返回类似的参数,这样我们只需要更改TeraWurflDatabase_MySQL5.php
文件中的对象初始化。
有人做过吗?