bbrala/php7-mysql-shim

此包已被弃用且不再维护。作者建议使用 dshafik/php7-mysql-shim 包代替。

PHP 7 对 ext/mysql 的包装。暂时性包装,不会破坏旧 PHP 的功能

1.0.0beta2 2017-01-12 20:22 UTC

README

Build Status Scrutinizer Code Quality Code Coverage

PHP 7 对 ext/mysql 的包装

此库试图使用 mysqli 在 PHP 7 上创建 ext/mysql 的替代品。

大部分情况下,它应该 直接工作

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

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

你应该切换到 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 自动化