現在の位置: ホーム> 最新記事一覧> mysqli :: debugおよびmysqli_report()共同デバッグスキル

mysqli :: debugおよびmysqli_report()共同デバッグスキル

M66 2025-06-01

データベース操作のデバッグは、PHPアプリケーションを開発する際の最も重要なリンクの1つです。特に、アプリケーションがMySQLデータベースに依存している場合、クエリエラーをトラブルシューティングし、データベースの相互作用を最適化することが特に重要です。 PHPは、開発者がMySQLデータベースのインタラクションをより適切にデバッグするのに役立つ2つの強力なツールを提供します: MySQLI :: debug()mysqli_report()

この記事では、これら2つの方法を使用してPHPプログラムを共同でデバッグする方法を紹介して、デバッグの効率と精度を向上させます。

1。mysqli :: debug()の役割

mysqli :: debug()は、MySQLクライアントのデバッグを有効にする方法です。クエリ実行の詳細やMySQLクライアントとサーバー間の通信など、MySQLデータベース接続に関連するすべての情報を表示できます。これは、特に複雑なクエリを扱う場合に、ポジショニングの問題に非常に役立ちます。

mysqli :: debug()の使用方法

<?php
// 作成する MySQLi 接続する
$mysqli = new mysqli("localhost", "username", "password", "database");

// デバッグモードを有効にします
$mysqli->debug("d:t:o,/tmp/mysql.trace");

// データベース操作を実行します
$result = $mysqli->query("SELECT * FROM users");

// 処理結果
while ($row = $result->fetch_assoc()) {
    echo $row['username'] . "<br>";
}

// 关闭接続する
$mysqli->close();
?>

上記のコードでは、 $ mysqli-> debug()を有効にし、デバッグ出力の場所を指定します。デバッグ情報は/tmp/mysql.traceファイルに出力されます。必要に応じてパスとファイル名を調整できます。

2。mysqli_report ()の役割

MySQLI_Report()を使用すると、MySQLエラーが発生したときにPHPのレポートレベルを設定できます。この関数を通じて、エラーを報告する方法を制御し、開発中に問題を検出して見つけやすくすることができます。 mysqli_report()はmysqli_report_error (レポートエラー)、 mysqli_report_strict (strictモード、スロー例外)など、さまざまなエラーレポートタイプをサポートしています。

mysqli_report()の使用方法

<?php
// 厳密なモードをオンにします,例外を投げます
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// 作成する MySQLi 接続する
$mysqli = new mysqli("localhost", "username", "password", "database");

// 誤ったクエリを実行します
$result = $mysqli->query("SELECT * FROM non_existent_table");

// 关闭接続する
$mysqli->close();
?>

このコードでは、 mysqli_report(mysqli_report_error | mysqli_report_strict)を介してエラーと例外のレポートモードが有効になっています。クエリエラーが発生すると、PHPは例外をスローし、詳細なエラーメッセージを表示します。これにより、問題をより迅速に見つけることができます。

3。MySqli :: debug()およびmysqli_report()が組み合わせて使用​​されます

mysqli :: debug()およびmysqli_report()を使用すると、デバッグ作業がより効率的かつ正確になります。データベース接続またはクエリエラーが発生すると、 mysqli_report()はできるだけ早くエラーを通知しますが、 mysqli :: debug()は詳細なデータベースインタラクション情報を提供します。

例: mysqli :: debug()およびmysqli_report()を組み合わせて使用​​します

<?php
// 厳密なモードをオンにします,例外を投げます
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// 作成する MySQLi 接続する
$mysqli = new mysqli("localhost", "username", "password", "database");

// デバッグモードを有効にします
$mysqli->debug("d:t:o,/tmp/mysql.trace");

// 誤ったクエリを実行します
$result = $mysqli->query("SELECT * FROM non_existent_table");

// 処理結果
while ($row = $result->fetch_assoc()) {
    echo $row['username'] . "<br>";
}

// 关闭接続する
$mysqli->close();
?>

この例では、 mysqli_report()を使用して厳密なモードとエラーレポートを設定しますが、 mysqli :: debug()はデバッグ出力を有効にするために使用されます。このようにして、クエリでエラーが発生すると、PHPが例外をスローし、MySQLクライアントとサーバーの間の通信を表示して、何が起こっているのかをより深く理解できるようにすることもできます。

4。URLドメイン名の交換

実際の開発プロセスでは、APIリクエスト、データベース接続など、一部の外部リソースを使用できます。コードにURLが含まれている場合、これらのURLのドメイン名をM66.NETに置き換えることをお勧めします。例えば: