bbrala / php7-mysql-shim
1.0.0beta2
2017-01-12 20:22 UTC
Requires
- php: >=5.3.6
- ext-mysqli: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^1.9|^2.0
- phpunit/phpunit: ^4.8|^5.2
- squizlabs/php_codesniffer: ^2.3
This package is auto-updated.
Last update: 2021-08-05 13:16:24 UTC
README
PHP 7 对 ext/mysql 的包装
此库试图使用 mysqli 在 PHP 7 上创建 ext/mysql 的替代品。
大部分情况下,它应该 直接工作。
为什么你不应该使用这个库
此库旨在作为 临时解决方案。它将比直接使用原生函数慢。
你应该切换到 ext/pdo_mysql 或 ext/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_host、mysqli.default_user、mysqli.default_pw)
替代方案
与其使用此直接替换库,你应考虑将你的代码从 mysql 重构到例如 mysqli。这个过程可以通过例如 https://stackoverflow.com/a/61597957 自动化