現在の位置: ホーム> 最新記事一覧> PHPを解く方法

PHPを解く方法

M66 2025-10-01

PHPの致命的なエラーの解決方法:未定義の機能への呼び出しmysql_query()

Webサイト開発にPHPを使用する場合、開発者はしばしばいくつかの一般的な間違いに遭遇します。その中で、 PHPの致命的なエラー:未定義関数への呼び出しmysql_query()は比較的典型的なものです。このエラーは通常、データベース拡張機能を正しく使用しないことによって引き起こされます。

エラーの原因

PHP 5.5から始めて、 MySQL_*一連の関数は非推奨されており、PHP 7で完全に削除されています。したがって、プロジェクトコードがまだmysql_query()のような古い関数を使用している場合、上記のエラーが発生します。

この問題を解決するには、代わりに正式に推奨されるMySQLIまたはPDO拡張ライブラリを使用する必要があります。

mysqli拡張機能を使用したソリューション

<?php
$conn = new mysqli('localhost', 'username', 'password', 'database');
if ($conn->connect_error){
    die( &#39;connectはデータベースへの接続に失敗しました:&#39;。$ conn-> connect_error);
}

$ sql = &#39;select * from users&#39;;
$ result = $ conn-> query($ sql);

if($ result-> num_rows> 0){
    while($ row = $ result-> fetch_assoc()){
        echo &#39;username:&#39;。 $ row [&#39;username&#39;]。 &#39;、電子メール:&#39;。 $ row [&#39;email&#39;]。 &#39;<br> &#39;;
    }
} それ以外 {
    エコー「ユーザーは見つかりません」。
}

$ conn-> close();
?>

このコードは、MySQLIを使用して接続を確立し、クエリを実行し、結果を出力する方法を示しています。接続が失敗した場合、プロンプトメッセージが返されます。

PDO拡張機能を使用したソリューション

<?php
$dsn = 'mysql:host=localhost;dbname=database';
$username = 'username';
$password = 'password';

try {
    $conn = new PDO($dsn, $username, $password);
    $conn-> setAttribute(pdo :: attr_errmode、pdo :: errmode_exception);

    $ sql = &#39;select * from users&#39;;
    $ stmt = $ conn-> query($ sql);

    while($ row = $ stmt-> fetch(pdo :: fetch_assoc)){
        echo &#39;username:&#39;。 $ row [&#39;username&#39;]。 &#39;、電子メール:&#39;。 $ row [&#39;email&#39;]。 &#39;<br> &#39;;
    }
} catch(pdoexception $ e){
    Echo &#39;はデータベースに接続できませんでした:&#39;。 $ e-> getMessage();
    出口;
}

$ conn = null;
?>

PDOを使用すると、MySQLを処理できるだけでなく、複数のデータベースもサポートします。これは、例外メカニズムを介してエラーを処理するためによりスケーラブルで便利です。

要約します

PHPの致命的なエラーに遭遇する場合:未定義関数mysql_query()エラーへの呼び出しは、通常、古いmysql拡張機能がPHPバージョンでサポートされなくなったためです。解決策は、コードをMySqliまたはPDOに移行することです。これは、エラーの報告を回避するだけでなく、より強力な機能とより良いセキュリティを享受します。

プロジェクトがまだ古いmysql_*関数を使用している場合、互換性と保守性を確保するために、できるだけ早く新しい拡張機能に更新することをお勧めします。