PHP 7 以降、mysql_* 関数は削除されました。これらの機能をまだ使用しているアプリケーションは更新する必要があり、更新しないと互換性の問題が発生します。解決策の 1 つは、php7-mysql-shim を使用することです。これは、mysql_* 関数を同等の mysqli_* にマッピングすることで、PHP 7 で mysql_* 関数を使用できるようにする互換性レイヤーを提供するライブラリです。
php7-mysql-shim は、非推奨の mysql_* 関数のドロップイン代替機能を提供するように設計された PHP ライブラリです。これにより、データベースのやり取りを完全に書き直すことなく、レガシー アプリケーションを PHP 7 以降のバージョンで実行できるようになります。
php7-mysql-shim は、PHP の依存関係マネージャーである Composer 経由でインストールできます。
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 アプリケーションを実行するための簡単で効果的なソリューションを提供します。シムをインストールしてプロジェクトに含めることで、大規模な書き換えを回避し、最新の PHP バージョンとの互換性を確保できるため、スムーズな移行とアプリケーションの機能の継続が可能になります。
以上がphpysql-shim を使用して PHP 7 の「mysql_*」関数の互換性に対処するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。