從 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中文網其他相關文章!