現在の位置: ホーム> 最新記事一覧> エラーが発生したときにSQLステートメントと結果のオブジェクトコンテンツを印刷する方法

エラーが発生したときにSQLステートメントと結果のオブジェクトコンテンツを印刷する方法

M66 2025-05-28

PHPでは、 MySQLI拡張機能を使用してMySQLデータベースと対話する場合、 MySQLI_Result関数を使用してクエリ結果を処理することがよくあります。 SQLクエリを実行するときにエラーをキャッチできるようにするために、SQLステートメントと結果オブジェクトの内容を表示すると、エラーが発生したときに、エラーが発生したときに追加のデバッグ出力を実行します。

この記事では、クエリを実行するときにエラーをキャプチャしてSQLステートメントの内容を印刷し、結果の結果オブジェクトをクエリする方法を示します。

ステップ1:データベース接続を作成します

まず、MySQLデータベースへの接続を作成する必要があります。ここでは、 MySqli_Connectを使用してデータベースサーバーに接続します。

 <?php
$host = "localhost";  // データベースホストアドレス
$username = "root";   // データベースのユーザー名
$password = "";       // データベースパスワード
$dbname = "my_database";  // データベース名

// 接続を作成します
$conn = new mysqli($host, $username, $password, $dbname);

// 接続が成功しているかどうかを確認してください
if ($conn->connect_error) {
    die("接続に失敗しました: " . $conn->connect_error);
}
?>

ステップ2:クエリを実行し、結果を処理します

SQLクエリを実行すると、 mysqli_query関数の返品値をキャプチャできます。クエリエラーが発生した場合、SQLステートメントと返された結果オブジェクトコンテンツを印刷します。

 <?php
// 例 SQL クエリ
$sql = "SELECT * FROM users"; // クエリ users テーブル内のすべての記録

// 执行クエリ
$result = $conn->query($sql);

// 检查クエリ是否成功
if (!$result) {
    // 如果クエリ失败,エラーメッセージを印刷します
    echo "クエリ失败: " . $conn->error . "<br>";
    
    // 実行されたものを印刷します SQL 声明
    echo "SQL 声明: " . $sql . "<br>";
    
    // 印刷 mysqli_result オブジェクトコンテンツ(もしそうなら)
    echo "结果オブジェクトコンテンツ: ";
    var_dump($result);
} else {
    // 如果クエリ成功,処理結果
    while ($row = $result->fetch_assoc()) {
        echo "ユーザーID: " . $row["id"] . " - ユーザー名: " . $row["username"] . "<br>";
    }
}
?>

説明する

  1. $ conn-> query($ sql) :このコード行は、SQLクエリを実行するために使用されます。クエリが失敗した場合、 $ resultはfalseになり、エラーメッセージとSQLステートメントを印刷できます。

  2. $ conn->エラー:このプロパティは、最近実行されたSQLクエリエラーメッセージを返します。クエリの障害の原因を診断するために使用できます。

  3. var_dump($ result) :クエリが失敗した場合、 $ result変数はfalseになります。デバッグには、 var_dumpを使用してmysqli_resultオブジェクトのコンテンツを出力して、エラーが発生したときに特定の情報を表示するのに役立ちます。

ステップ3:データベース接続を閉じます

操作が完了したら、データベース接続を閉じる必要があります。

 <?php
$conn->close();
?>

要約します

上記のコードの例を介して、SQLクエリが失敗すると、プログラムは失敗したSQLステートメントとエラーメッセージを印刷し、開発者がデバッグして問題を解決するのに役立ちます。特に開発段階とテスト段階では、この情報をキャプチャして出力することは非常に有用であり、クエリで問題を迅速に見つけることができます。

より複雑なデータベースアプリケーションを開発している場合は、特に動的入力またはその他の要因のためにクエリステートメントがエラーが発生する可能性がある場合は、クエリが実行されるたびにエラー処理とデバッグ出力を実行することをお勧めします。

この記事があなたに役立つことを願っています。いつでももっと質問をすることを歓迎します!