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 自动化