从 PHP 7 开始,mysql_* 函数已被删除。仍然使用这些功能的应用程序需要更新或面临兼容性问题。一种解决方案是使用 php7-mysql-shim,这是一个提供兼容性层的库,允许通过将它们映射到 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后,只需要包含autoload文件即可:
// 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 应用程序。通过安装填充程序并将其包含在您的项目中,您可以避免大量重写并确保与现代 PHP 版本的兼容性,从而实现平稳过渡和持续的应用程序功能。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3