MySQLI拡張機能を使用する場合、 MySQLI :: Debugは非常に便利なデバッグツールであり、MySQLデータベースと対話するときに開発者が詳細情報を表示するのに役立ちます。 mysqli :: debugを呼び出すことにより、mysqlクエリの実行プロセス、エラー情報などを印刷できます。ただし、多くの開発者は、MySqli :: Debugを使用する場合、応答がないことを発見しました。この記事には、問題が何であるかを知るのに役立つ無効化のいくつかの一般的な原因がリストされています。
MySQLI :: DEBUGは、 MySQLのデバッグ機能が有効になっていることを確認する必要があります。 MySQL構成がデバッグを有効にしない場合、 MySqli :: Debugを呼び出すときに効果はありません。 MySQL構成ファイル(通常my.cnfまたはmy.ini )がデバッグを有効にしているかどうかを確認するか、次のSQLコマンドを使用してデバッグステータスを確認できます。
SHOW VARIABLES LIKE 'log_output';
log_output変数の値がテーブルまたはファイルであることを確認してください。そうしないと、デバッグ情報が記録されません。
MySQLI接続の作成時にデバッグをサポートしない接続メソッドを使用する場合、 MySQLI :: Debugが機能しない場合があります。たとえば、 mysqli_connect()メソッドを使用してデータベースに接続する場合、デバッグが有効になる場合があります。デバッグ関数の通常の動作を確保するには、オブジェクト指向の方法を使用してデータベース接続を作成することをお勧めします。
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
$mysqli->debug("test");
まだmysqli_connect()を使用している場合は、他の構成を確認するか、オブジェクト指向のアプローチに切り替えてみてください。
デバッグ情報がログファイルに出力されたり、ブラウザのバッファーによってキャッシュされたりして、画面上のデバッグ出力が直接表示されない場合があります。 PHP.ini構成を変更して、エラーメッセージがブラウザに正しく表示されるようにすることができます。
php.iniで次の構成を開きます。
display_errors = On
error_reporting = E_ALL
同時に、PHP出力がバッファリングされていないことを確認してください。出力バッファリングを無効にするか、バッファリングをクリアできます。
ob_end_flush();
コードがmysqli :: debug (データベースに接続するURLなど)からのURL出力を使用している場合、間違ったドメイン名が含まれていないことを確認してください。たとえば、次のようにする必要があります。
$mysqli->real_connect("http://m66.net/dbconnect");
また、誤って無効なURLを使用した可能性があります。 URLが有効であり、MySQLサービスと一致していることを確認してください。接続URLが間違っている場合、 MySQLI ::デバッグのデバッグ出力が失敗します。
mysqli ::デバッグは、正しい場所で呼び出される必要があります。関連するデバッグ情報をキャプチャして印刷するために、MySQLクエリを実行する前に呼び出す必要があります。クエリが実行された後にそれを呼び出すと、デバッグ情報が失われた可能性があります。データベース操作を実行する前に、必ず使用してください。
$mysqli->debug("Debugging MySQL Query");
$query = "SELECT * FROM users";
$result = $mysqli->query($query);
MySqli :: Debugは、主にクエリ実行プロセスの詳細情報を印刷するために使用されます。クエリが問題ない場合、有用なデバッグ情報を出力できない場合があります。クエリが本当に問題であることを確認するか、より複雑なクエリを使用して出力をデバッグします。
まだデバッグ出力が表示されない場合は、ブラウザのキャッシュまたはサーバーの構成を確認してください。一部のサーバーは出力をキャッシュする可能性があり、リアルタイムでデバッグ情報が表示されないようになります。ブラウザのキャッシュをクリアするか、サーバー上のキャッシュ機能を無効にすると、この問題が解決する場合があります。
MySqli :: Debugは非常に便利なツールですが、すべての場合にデバッグ情報を自動的に出力するわけではありません。応答がない場合は、上記の理由に従って1つずつチェックし、構成を適切に動作させるように調整できます。デバッグ情報は、潜在的なデータベース接続の問題、クエリの問題、およびMySQLと対話するときに発生する可能性のあるエラーを発見するのに役立ちます。
関連タグ:
mysqli