PHP5.6 から PHP7.4 への互換性の問題でのデータベース接続エラーを解決するにはどうすればよいですか?
PHP バージョンの更新に伴い、PHP5.6 から PHP7.4 への互換性の問題が発生します。よくある問題の 1 つは、データベース接続エラーです。この記事では、この問題を解決する方法と、対応するコード例を示します。
PHP5.6 以前のバージョンでは、通常、mysql 拡張機能を使用してデータベースに接続し、操作します。 PHP7.0 以降、mysql 拡張機能は非推奨になり、mysqli 拡張機能と PDO 拡張機能に置き換えられました。したがって、PHP5.6 から PHP7.4 にコードをアップグレードする場合は、データベース接続コードを変更する必要があります。
まず、コードで mysql 拡張機能が使用されている場合は、それを mysqli 拡張機能に置き換える必要があります。データベース接続を変更するコードは次のとおりです。
// PHP5.6及之前版本的数据库连接代码 $conn = mysql_connect($servername, $username, $password); mysql_select_db($dbname, $conn); // 修改为PHP7.4的数据库连接代码 $conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli 拡張機能では、接続関数名は「mysqli_connect」となり、データベース名を 4 番目のパラメーターとして渡す必要があります。
さらに、PHP7.4 以降、データベースに接続する際のホスト名として "localhost" を使用することはサポートされなくなったことに注意してください。データベースに接続するときに「localhost」を使用すると、接続は失敗します。この問題の解決策は、以下に示すように、「localhost」を「127.0.0.1」に置き換えることです。
// 使用"127.0.0.1"代替"localhost"连接数据库 $servername = "127.0.0.1";
次に、SQL クエリを実行するコードを変更する必要があります。 PHP5.6 以前のバージョンでは、通常、SQL クエリを実行するために「mysql_query」関数を使用します。 PHP7.4ではクエリを実行するには「mysqli_query」関数を使用する必要があります。変更されたコードは次のようになります。
// PHP5.6及之前版本的SQL查询代码 $result = mysql_query($sql); // 修改为PHP7.4的SQL查询代码 $result = mysqli_query($conn, $sql);
同様に、「mysql_query」関数を「mysqli_query」関数に置き換える必要があり、データベース接続が最初のパラメーターとして関数に渡されます。
mysqli 拡張機能に加えて、PDO 拡張機能もデータベースの接続と操作に適しています。コードで PDO 拡張機能を使用している場合は、データベース接続コードを次のように変更する必要があります。
// PHP5.6及之前版本的数据库连接代码 $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 修改为PHP7.4的数据库连接代码 $conn = new PDO("mysqli:host=$servername;dbname=$dbname", $username, $password);
PDO 拡張機能では、データベース接続メソッドは、パラメーター「mysql」で PDO クラスをインスタンス化することによって実現されます。 「」を「mysqli」に置き換える必要があります。
要約すると、PHP5.6 から PHP7.4 への互換性の問題におけるデータベース接続エラーを解決するには、まず mysql 拡張子を mysqli 拡張子または PDO 拡張子に置き換える必要があります。データベースに接続するときは、「localhost」を「127.0.0.1」に置き換えることに注意してください。さらに、SQL クエリを実行するコードもそれに応じて変更する必要があります。
上記の変更により、コードは PHP5.6 から PHP7.4 に正常にアップグレードされ、データベース接続によって発生する互換性エラーが解決されます。この記事の内容があなたのお役に立てれば幸いです。
以上がPHP5.6からPHP7.4への互換性の問題でデータベース接続エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。