dshafik / php7-mysql-shim
PHP 7 的 ext/mysql 模块适配器
1.0.0beta4
2020-12-14 07:30 UTC
Requires
- php: >=5.3.6
- ext-mysqli: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- squizlabs/php_codesniffer: ^3.5
- yoast/phpunit-polyfills: ^0.2.0
- dev-master
- 1.0.0beta4
- 1.0.0beta3
- 1.0.0beta2
- 1.0.0beta1
- 0.2.0
- 0.1.0
- dev-dependabot/composer/friendsofphp/php-cs-fixer-3.15.0
- dev-dependabot/composer/squizlabs/php_codesniffer-3.7.2
- dev-dependabot/composer/yoast/phpunit-polyfills-1.0.4
- dev-code-quality
- dev-fake-pr
- dev-github-actions
- dev-pr/bpolaszek/49
- dev-fixup-tests
- dev-travis-matrix
- dev-old-php-support
This package is auto-updated.
Last update: 2024-09-05 00:37:16 UTC
README
PHP 7 的 ext/mysql 模块适配器
这个库尝试使用 mysqli 创建 ext/mysql 在 PHP 7 上的替代品。
大多数情况下,它应该正常工作。
为什么你不应该使用这个库
这个库旨在作为临时解决方案。它将比直接使用原生函数慢。
你应该切换到 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 自动化。