dshafik/php7-mysql-shim

PHP 7 的 ext/mysql 模块适配器

1.0.0beta4 2020-12-14 07:30 UTC

README

Build Status Code Coverage

PHP 7 的 ext/mysql 模块适配器

这个库尝试使用 mysqli 创建 ext/mysql 在 PHP 7 上的替代品。

大多数情况下,它应该正常工作

为什么你不应该使用这个库

这个库旨在作为临时解决方案。它将比直接使用原生函数慢。

你应该切换到 ext/pdo_mysqlext/mysqli,并迁移到 预编译语句,以确保你安全地与数据库交互。

安装

要安装,请将 dshafik/php7-mysql-shim 添加到您的 composer.json

$ composer require dshafik/php7-mysql-shim

或者,克隆/下载此仓库,并将 lib/mysql.php 包含到您的项目中。

用法

使用 composer 安装后,库将自动包含。

一旦包含 lib/mysql.php 文件,如果它们尚未存在,它将创建 mysql_* 函数。您可以在 PHP 5.3.6+ 项目中安全地包含此文件,如果 mysql 扩展已可用,它将不会执行任何操作。

注意事项

  • 在 MySQL 连接和结果上调用 is_resource()get_resource_type() 将失败,因为这些现在已经是它们的 mysqli 等价物。
  • 一些错误现在来自 ext/mysqli,而其他错误现在是 E_USER_WARNING 而不是 E_WARNING
  • 您必须使用 mysqli.* INI 条目而不是 mysql.*(例如,使用 mysqli.default_user 而不是 mysql.default_user
  • 当使用 mysql_* 函数时,如果没有提供主机、用户名或密码参数,将使用来自 php.ini 文件中相应的 mysqli.* 设置的默认值(例如,mysqli.default_hostmysqli.default_usermysqli.default_pw

替代方案

您可以考虑将代码从 mysql 重构为例如 mysqli 而不是使用此替代库。这个过程可以通过例如 https://stackoverflow.com/a/61597957 自动化。