現在の位置: ホーム> 最新記事一覧> mysqli :: $ errnoとmysqli :: $エラーの違いは何ですか?

mysqli :: $ errnoとmysqli :: $エラーの違いは何ですか?

M66 2025-05-18

PHPでは、 MySQLI拡張機能は、MySQLデータベース接続とクエリを処理するための一般的なツールです。 MySQL拡張機能とは異なり、 MySQLIはより多くの機能と柔軟性を提供し、オブジェクト指向のプログラミングをサポートします。データベース操作にMySQLIを使用する場合、プログラムをデバッグするか、ユーザーに便利なプロンプトを表示するためにエラーメッセージをキャプチャする必要がある場合があります。 PHPは2つのプロパティを提供します。MySqli:: $ errnomysqli :: $エラーは、開発者がエラー情報を取得するのに役立ちますが、微妙な違いがあり、さまざまなシナリオに適しています。この記事では、深さの違いを分析し、エラー情報をキャッチするためにより適した属性について説明します。

1。mysqliの定義:: $ errnoおよびmysqli :: $ error

  • mysqli :: $ errno :最後のデータベース操作中に発生したエラーコード(整数フォーム)を返します。エラーが発生しない場合は、 0を返します。このエラーコードは、MySQLデータベースによって定義された数字であり、さまざまなタイプのエラーを表すために使用されます。

  • mysqli :: $ error :最後のデータベース操作中に発生したエラーメッセージ(文字列形式)を返します。エラーが発生しない場合、空の文字列が返されます。このエラーメッセージは通常、MySQLが返した詳細な説明であり、開発者が何が起こっているのかを理解できるようにします。

2。mysqli :: $ errnomysqli :: $ errorの主な違い

  • エラータイプ
    mysqli :: $ errnoはエラーコード(積分)を返しますが、 mysqli :: $エラーはエラーを説明する文字列(テキスト)を返します。これは、mysqli :: $ errnoがプログラムのエラー分類と判断(エラーコードに基づく異なる処理など)に適していることを意味しますが、 mysqli :: $ errorは、簡単にデバッグするための詳細なエラー情報を提供するためにより適しています。

  • エラーコンテンツ
    エラーコードはMySQLで内部的に定義され、各エラーコードは特定のタイプのエラーに対応します。たとえば、 1062は、データを挿入するときに一意の制約に違反することを意味します。エラーメッセージは、「キー「プライマリ」の重複エントリ」など、エラーの特定の原因を説明するなど、より直感的です。開発者は通常、エラーコードをチェックして問題カテゴリを最初に決定し、次にエラーメッセージに基づいてデバッグします。

  • パフォーマンスの違い
    エラーコードを取得する( mysqli :: $ errno )は、単純な整数値であるため、比較的軽量です。エラーメッセージ( mysqli :: $ error )を取得するには、文字列を返す必要があります。

3.エラーメッセージをキャッチするのに適しているのはどれですか?

  • mysqliを使用:: $ errno
    エラーが発生したかどうかのみを気にし、エラーコードに基づいて特定の処理を行う必要がある場合(たとえば、エラーコードが1045の場合、データベース接続の許可が不十分であることを意味します)、 mysqli :: $ errnoがより適切になります。エラーカテゴリを判断するためのシンプルで明確な方法を提供します。

  • mysqliの使用:: $エラー
    より詳細なエラー情報を取得する必要がある場合、またはデバッグのためのツールを開発している場合、 mysqli :: $エラーがより良い選択です。エラーメッセージは、MySQLによって返される特定の問題の説明を提供します。これにより、問題をより速く見つけることができます。

4.サンプルコード

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を介して詳細なエラー情報を取得できます。

5。概要

  • mysqli :: $ errnoは、エラーの分類と処理に適した整数型エラーコードを返します。

  • mysqli :: $エラー特定のエラー説明のデバッグと表示に適した文字列タイプエラーメッセージを返します。

エラー情報をキャッチするには、エラーコードに基づいて異なる処理を行う必要がある場合は、 mysqli :: $ errnoを使用する方が良い選択です。また、特定のエラーの説明をデバッグして表示する必要がある場合は、 mysqli :: $エラーを使用する方が適切です。