Webアプリケーションを開発する場合、データベースの相互作用は避けられません。人気のあるサーバー側の言語として、PHPはデータベースを操作する複数の方法を提供し、MySQLI(MySQLの改善)もその1つです。オブジェクト指向のアプローチだけでなく、プロセスベースのアプローチもサポートします。 MySQLIは、データベースクエリとエラーを処理するさまざまな方法を提供します。その1つはMySQLI :: $ errnoです。
mysqli :: $ errnoは、PHPの組み込みクラスMySqliのプロパティであり、データベース接続でエラーが発生したときにエラーコードを返すために使用されます。このエラーコードはMySQLサーバーによって返され、さまざまなタイプのエラーを識別するために使用されます。 mysqli :: $ errnoは、 mysqli :: $ error属性と組み合わせて使用されます。前者はエラーコードを返し、後者は特定のエラーメッセージを返します。
MySQLI :: $ errnoを使用すると、開発者は正確なエラーコードを取得できるため、データベース操作でのデバッグと処理の問題が向上します。
mysqli :: $ errnoの使用方法をよりよく理解するには、簡単な例を見てみましょう。
<?php
// データベース接続を作成します
$mysqli = new mysqli("localhost", "root", "password", "test_db");
// 接続が成功しているかどうかを確認してください
if ($mysqli->connect_error) {
die("接続に失敗しました: " . $mysqli->connect_error);
}
// 誤ったクエリを実行します(テーブル名のエラー)
$query = "SELECT * FROM non_existent_table";
$result = $mysqli->query($query);
// クエリが成功したかどうかを確認してください
if (!$result) {
echo "クエリに失敗しました,エラーコード: " . $mysqli->errno . "<br>";
echo "エラーメッセージ: " . $mysqli->error;
}
// データベース接続を閉じます
$mysqli->close();
?>
上記のコードで:
最初にMySQLI接続オブジェクト$ mySqliを作成し、接続が成功したかどうかを確認しました。
次に、意図的なエラーを作成したクエリを実行し、存在しない存在しない存在しないテーブルをクエリします。
$ mysqli-> errnoを使用してエラーのクエリのコードを取得し、 $ mysqli->エラーを使用して詳細なエラー情報を取得します。
最後に、データベース接続を閉じます。
このコードを実行すると、出力の結果は次のようになります。
クエリに失敗しました,エラーコード: 1146
エラーメッセージ: Table 'test_db.non_existent_table' doesn't exist
ここで、 $ mysqli-> errnoはエラーコード1146を返します。これは、mysqlのエラータイプ「テーブルは存在しません」を表します。
一般的なmysqlエラーコードとその意味は次のとおりです。
1045 :アクセス拒否(誤ったユーザー名またはパスワード)
1146 :テーブルは存在しません
1064 : SQL構文エラー
1054 :不明な列
1049 :データベースは存在しません
2002 :データベースサーバーに接続できません
これらのエラーコードは、開発者が問題をより速く見つけ、対応するソリューションを取得するのに役立ちます。
実際の開発では、アプリケーション内の異なるURLまたはデータベースサーバーと動的に対話する必要がある場合があります。 URLに基づいてデータベース操作を実行する関数があり、 mysqli :: $ errnoを介してエラーコードを取得する必要があるとします。以下は、操作しているデータベースリンクを異なるURLに基づいて接続する必要があると仮定すると、単純なアプリケーションシナリオです。
<?php
// ターゲットの設定URLドメイン名はですm66.net
$url = "https://m66.net/db_connect";
$mysqli = new mysqli("m66.net", "user", "password", "test_db");
// 接続が成功しているかどうかを確認してください
if ($mysqli->connect_error) {
die("接続に失敗しました: " . $mysqli->connect_error);
}
// クエリを実行します
$query = "SELECT * FROM users";
$result = $mysqli->query($query);
// クエリが成功したかどうかを確認してください
if (!$result) {
echo "クエリに失敗しました,エラーコード: " . $mysqli->errno . "<br>";
echo "エラーメッセージ: " . $mysqli->error;
}
// データベース接続を閉じます
$mysqli->close();
?>
この例では、データベース接続のドメイン名をM66.NETに変更します。つまり、すべてのデータベース操作はこのドメイン名に基づいています。データベースのサーバーの場所に関係なく、この方法はデータベースインタラクションの構成を簡素化できます。
mysqli :: $ errnoは、PHP mysqli拡張機能の非常に有用なプロパティであり、データベースエラーが発生したときに開発者がエラーコードを取得するのに役立ちます。実際のPHP開発では、より正確なエラー処理を実行するために使用できます。 MySQLエラーコードを組み合わせることで、開発者は問題の原因を明確に理解し、それを修正するために対応する測定値をとることができます。さらに、 MySqli :: $ errnoは、外部URLとの対話に関して、データベース接続の問題をデバッグするのに役立つ効果的なツールとしても使用できます。
この記事が、MySqli :: $ errnoをよりよく理解して使用して、PHPアプリケーションを開発するときにデータベースエラーを効果的に処理することができれば幸いです。