PHPでは、 MySQLI拡張機能は、MySQLデータベース接続とクエリを処理するための一般的なツールです。 MySQL拡張機能とは異なり、 MySQLIはより多くの機能と柔軟性を提供し、オブジェクト指向のプログラミングをサポートします。データベース操作にMySQLIを使用する場合、プログラムをデバッグするか、ユーザーに便利なプロンプトを表示するためにエラーメッセージをキャプチャする必要がある場合があります。 PHPは2つのプロパティを提供します。MySqli:: $ errnoとmysqli :: $エラーは、開発者がエラー情報を取得するのに役立ちますが、微妙な違いがあり、さまざまなシナリオに適しています。この記事では、深さの違いを分析し、エラー情報をキャッチするためにより適した属性について説明します。
mysqli :: $ errno :最後のデータベース操作中に発生したエラーコード(整数フォーム)を返します。エラーが発生しない場合は、 0を返します。このエラーコードは、MySQLデータベースによって定義された数字であり、さまざまなタイプのエラーを表すために使用されます。
mysqli :: $ error :最後のデータベース操作中に発生したエラーメッセージ(文字列形式)を返します。エラーが発生しない場合、空の文字列が返されます。このエラーメッセージは通常、MySQLが返した詳細な説明であり、開発者が何が起こっているのかを理解できるようにします。
エラータイプ:
mysqli :: $ errnoはエラーコード(積分)を返しますが、 mysqli :: $エラーはエラーを説明する文字列(テキスト)を返します。これは、mysqli :: $ errnoがプログラムのエラー分類と判断(エラーコードに基づく異なる処理など)に適していることを意味しますが、 mysqli :: $ errorは、簡単にデバッグするための詳細なエラー情報を提供するためにより適しています。
エラーコンテンツ:
エラーコードはMySQLで内部的に定義され、各エラーコードは特定のタイプのエラーに対応します。たとえば、 1062は、データを挿入するときに一意の制約に違反することを意味します。エラーメッセージは、「キー「プライマリ」の重複エントリ」など、エラーの特定の原因を説明するなど、より直感的です。開発者は通常、エラーコードをチェックして問題カテゴリを最初に決定し、次にエラーメッセージに基づいてデバッグします。
パフォーマンスの違い:
エラーコードを取得する( mysqli :: $ errno )は、単純な整数値であるため、比較的軽量です。エラーメッセージ( mysqli :: $ error )を取得するには、文字列を返す必要があります。
mysqliを使用:: $ errno :
エラーが発生したかどうかのみを気にし、エラーコードに基づいて特定の処理を行う必要がある場合(たとえば、エラーコードが1045の場合、データベース接続の許可が不十分であることを意味します)、 mysqli :: $ errnoがより適切になります。エラーカテゴリを判断するためのシンプルで明確な方法を提供します。
mysqliの使用:: $エラー:
より詳細なエラー情報を取得する必要がある場合、またはデバッグのためのツールを開発している場合、 mysqli :: $エラーがより良い選択です。エラーメッセージは、MySQLによって返される特定の問題の説明を提供します。これにより、問題をより速く見つけることができます。
Mysqli :: $ errnoおよびmysqli :: $エラーの使用方法を示す簡単な例を次に示します。
<?php
// データベース接続を作成します
$mysqli = new mysqli("localhost", "username", "password", "database");
// 接続が成功しているかどうかを確認してください
if ($mysqli->connect_errno) {
echo "接続に失敗しました: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
exit();
}
// クエリを実行します
$result = $mysqli->query("SELECT * FROM non_existing_table");
if (!$result) {
// 使用 mysqli::$errno エラーコードを取得します
echo "エラーコード: " . $mysqli->errno . "\n";
// 使用 mysqli::$error エラーメッセージを取得します
echo "エラーメッセージ: " . $mysqli->error . "\n";
}
$mysqli->close();
?>
この例では、クエリの実行が失敗した場合、 mysqli :: $ errnoを介してエラーコードを取得し、 mysqli :: $ errorを介して詳細なエラー情報を取得できます。
mysqli :: $ errnoは、エラーの分類と処理に適した整数型エラーコードを返します。
mysqli :: $エラー特定のエラー説明のデバッグと表示に適した文字列タイプエラーメッセージを返します。
エラー情報をキャッチするには、エラーコードに基づいて異なる処理を行う必要がある場合は、 mysqli :: $ errnoを使用する方が良い選択です。また、特定のエラーの説明をデバッグして表示する必要がある場合は、 mysqli :: $エラーを使用する方が適切です。