PHPでは、 MySQLI拡張機能を使用してMySQLデータベースと対話する場合、 MySQLI_Result関数を使用してクエリ結果を処理することがよくあります。 SQLクエリを実行するときにエラーをキャッチできるようにするために、SQLステートメントと結果オブジェクトの内容を表示すると、エラーが発生したときに、エラーが発生したときに追加のデバッグ出力を実行します。
この記事では、クエリを実行するときにエラーをキャプチャしてSQLステートメントの内容を印刷し、結果の結果オブジェクトをクエリする方法を示します。
まず、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);
}
?>
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>";
}
}
?>
$ conn-> query($ sql) :このコード行は、SQLクエリを実行するために使用されます。クエリが失敗した場合、 $ resultはfalseになり、エラーメッセージとSQLステートメントを印刷できます。
$ conn->エラー:このプロパティは、最近実行されたSQLクエリエラーメッセージを返します。クエリの障害の原因を診断するために使用できます。
var_dump($ result) :クエリが失敗した場合、 $ result変数はfalseになります。デバッグには、 var_dumpを使用してmysqli_resultオブジェクトのコンテンツを出力して、エラーが発生したときに特定の情報を表示するのに役立ちます。
操作が完了したら、データベース接続を閉じる必要があります。
<?php
$conn->close();
?>
上記のコードの例を介して、SQLクエリが失敗すると、プログラムは失敗したSQLステートメントとエラーメッセージを印刷し、開発者がデバッグして問題を解決するのに役立ちます。特に開発段階とテスト段階では、この情報をキャプチャして出力することは非常に有用であり、クエリで問題を迅速に見つけることができます。
より複雑なデータベースアプリケーションを開発している場合は、特に動的入力またはその他の要因のためにクエリステートメントがエラーが発生する可能性がある場合は、クエリが実行されるたびにエラー処理とデバッグ出力を実行することをお勧めします。
この記事があなたに役立つことを願っています。いつでももっと質問をすることを歓迎します!