从 PHP 7 开始,mysql_* 函数已被删除。仍然使用这些功能的应用程序需要更新或面临兼容性问题。一种解决方案是使用 php7-mysql-shim,该库提供了一个兼容性层,允许通过将 mysql_* 函数映射到其 mysqli_* 等效项来在 PHP 7 中使用 mysql_* 函数。
php7-mysql-shim 是一个 PHP 库,旨在为已弃用的 mysql_* 函数提供直接替代。这允许遗留应用程序在 PHP 7 和更新版本上运行,而无需完全重写数据库交互。
您可以通过 PHP 的依赖管理器 Composer 安装 php7-mysql-shim。
安装 Composer:
如果您尚未安装 Composer,可以按照 getcomposer.org 上的说明进行安装。
需要 php7-mysql-shim:
导航到您的项目目录并运行以下命令将 php7-mysql-shim 添加到您的项目中:
composer require doozie-akshay/php7-mysql-shim
require 'vendor/autoload.php';
这是使用 mysql_* 函数的遗留代码示例:
// config.php $db_host = 'localhost'; $db_user = 'root'; $db_password = ''; $db_name = 'test'; // Establish connection $connection = mysql_connect($db_host, $db_user, $db_password); if (!$connection) { die('Could not connect: ' . mysql_error()); } mysql_select_db($db_name, $connection);
// check_user.php include_once('config.php'); $query = "SELECT * FROM users WHERE username = 'example_user'"; $result = mysql_query($query, $connection); if (!$result) { die('Query failed: ' . mysql_error()); } if (mysql_num_rows($result) > 0) { echo "User exists."; } else { echo "User does not exist."; } mysql_close($connection);
安装 php7-mysql-shim 后,只需包含自动加载文件:
// config.php require 'vendor/autoload.php'; $db_host = 'localhost'; $db_user = 'root'; $db_password = ''; $db_name = 'test'; // Establish connection $connection = mysql_connect($db_host, $db_user, $db_password); if (!$connection) { die('Could not connect: ' . mysql_error()); } mysql_select_db($db_name, $connection);
// check_user.php include_once('config.php'); $query = "SELECT * FROM users WHERE username = 'example_user'"; $result = mysql_query($query, $connection); if (!$result) { die('Query failed: ' . mysql_error()); } if (mysql_num_rows($result) > 0) { echo "User exists."; } else { echo "User does not exist."; } mysql_close($connection);
php7-mysql-shim 旨在提供与 mysql_* 函数的完全兼容性,包括错误处理和其他细微差别。确保您现有的错误处理代码无需修改即可保持有效。
php7-mysql-shim 提供了一个简单有效的解决方案,用于在 PHP 7 及更高版本上运行使用 mysql_* 函数的旧版 PHP 应用程序。通过安装 shim 并将其包含在您的项目中,您可以避免大量重写并确保与现代 PHP 版本的兼容性,从而实现平稳过渡和持续的应用程序功能。
以上是使用 phpysql-shim 解决 PHP 7 中的 `mysql_*` 函数兼容性问题的详细内容。更多信息请关注PHP中文网其他相关文章!