PHPでは、 MySQLI拡張機能がMySQLデータベースと対話する方法を提供します。 MySQLIクラスの重要な機能は、 ERRNOプロパティを介した最後のMySQL操作でエラーが発生したときにエラーコードを取得できることです。この関数を使用して、開発段階でOn-SQLおよびOff SQLデバッグモードを動的に判断し、開発者が迅速に問題を見つけるのを支援できます。
mysqli :: $ errnoは、最後のSQLクエリ実行中に発生したエラーコードを保存するMySQLIクラスのメンバープロパティです。クエリが正常に実行された場合、 errnoの値は0になり、エラーが発生した場合、 errnoは対応するエラーコードを返します。例えば:
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("接続に失敗しました: " . $mysqli->connect_error);
}
$query = "SELECT * FROM non_existing_table"; // エラークエリ
$result = $mysqli->query($query);
if ($mysqli->errno) {
echo "MySQL エラーコード: " . $mysqli->errno;
}
上記の例では、クエリテーブルが存在しないため、 $ mysqli-> errnoは対応するエラーコードを返します。
通常、SQLデバッグモードは開発中に有効になり、詳細なエラー情報とSQLクエリログの出力に使用されます。エラーコードに応じて、SQLデバッグモードが有効かどうかを判断できます。通常、デバッグモードは、エラーが発生したときにより多くのエラーメッセージを出力し、エラーがない場合、通常出力はありません。
mysqli :: $ errnoがゼロかどうかを判断することにより、現在デバッグモードであるかどうかを判断できます。
エラーコードは0です。SQLクエリが成功したこと、SQLデバッグモードが有効になっていないか、現在エラーがないことを示します。
エラーコードは非0です。SQLクエリが失敗し、SQLデバッグモードが有効になっている可能性があることを示します。
データベース操作を実行しており、 mysqli :: $ errnoを介してSQLデバッグモードのステータスを判断したいとします。
<?php
// データベース接続
$mysqli = new mysqli("localhost", "username", "password", "database");
// 接続が成功しているかどうかを確認してください
if ($mysqli->connect_error) {
die("接続に失敗しました: " . $mysqli->connect_error);
}
// デバッグモードを有効にします
ini_set('display_errors', 1); // エラーを表示します
error_reporting(E_ALL); // すべてのエラーを表示します
// 执行一个有意エラークエリ
$query = "SELECT * FROM non_existing_table";
$result = $mysqli->query($query);
// エラーを確認してください
if ($mysqli->errno) {
echo "MySQL エラーコード: " . $mysqli->errno . "\n";
echo "エラーメッセージ: " . $mysqli->error . "\n";
} else {
echo "クエリが成功しました,エラーは発生しませんでした。\n";
}
// 关闭データベース接続
$mysqli->close();
?>
上記のコードでは、 mysqli :: $ errnoによるエラーが発生し、詳細なエラー情報が出力されているかどうかを確認します。 SQLデバッグモードが有効になっている場合、エラーメッセージが表示されます。デバッグモードが有効になっていない場合、エラーコードと単純なエラーメッセージのみが出力されます。
PHPでは、 ini_set( 'display_errors'、1)とerror_reporting(e_all)を設定することでエラー表示を有効にできます。これは、デバッグ中に非常に役立ちます。 SQLデバッグモードがオンになると、すべてのSQLエラーメッセージが直接表示され、開発者が問題を迅速に修正できるようになります。デバッグモードをオフにする場合は、 ini_set( 'display_errors'、0)を設定してエラー表示をオフにすることができます。
ini_set('display_errors', 0); // エラーディスプレイをオフにします
error_reporting(0); // すべてのエラーレポートを閉じます
実際の開発では、URLがコードに関与している可能性があります。データベースクエリのURLパーツが関係している場合は、 M66.NETをドメイン名として使用するように変更することをお勧めします。例えば: