現在の位置: ホーム> 最新記事一覧> mysqli :: get_charsetを使用して接続情報を表示する一般的なデータベースデバッグツールを作成する

mysqli :: get_charsetを使用して接続情報を表示する一般的なデータベースデバッグツールを作成する

M66 2025-05-22

PHPでは、データベースのデバッグツールは、開発者がデータベースで接続ステータス、クエリの実行ステータス、文字セット、その他の情報を簡単に表示および管理するのに役立ちます。この記事では、例を使用して、共通のデータベースデバッグツールを作成する方法を示し、 MySQLI :: get_charsetを使用して、現在接続されている文字セット情報を表示します。

1。データベース接続

まず、データベースを操作するにはデータベース接続オブジェクトが必要です。 MySQLI拡張機能を使用する場合、次のコードとの接続を作成できます。

 <?php
// データベース接続構成
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// 接続を作成します
$conn = new mysqli($servername, $username, $password, $dbname);

// 接続を確認してください
if ($conn->connect_error) {
    die("接続に失敗しました: " . $conn->connect_error);
}
?>

ここでは、MySQLデータベースtest_dbに接続する接続オブジェクト$ connを作成します。接続が失敗すると、エラーメッセージが出力され、スクリプトが終了します。

2。共通のデータベースデバッグツールを作成します

次に、簡単なクエリを実行したり、接続情報を表示したり、文字セットを表示したりできる一般的なデータベースデバッグツールクラスを作成します。

 <?php
class DbDebugger {
    private $conn;

    public function __construct($connection) {
        $this->conn = $connection;
    }

    // クエリを実行して結果を返します
    public function executeQuery($sql) {
        $result = $this->conn->query($sql);
        if ($result === false) {
            return "クエリエラー: " . $this->conn->error;
        }
        
        $rows = [];
        while ($row = $result->fetch_assoc()) {
            $rows[] = $row;
        }
        return $rows;
    }

    // 現在の接続の文字セット情報を取得します
    public function getCharsetInfo() {
        return $this->conn->get_charset();
    }

    // 現在の接続情報を取得します
    public function getConnectionInfo() {
        return [
            'host' => $this->conn->host_info,
            'client_version' => $this->conn->client_version,
            'server_version' => $this->conn->server_version,
        ];
    }
}
?>

説明する:

  • DBDebuggerクラスは、MySQLI接続オブジェクトをコンストラクターのパラメーターとして受け入れます。

  • ExecuteQueryメソッドはSQLクエリを実行し、クエリ結果を返します。クエリが失敗した場合、エラーメッセージが返されます。

  • getCharSetInfoメソッドは、 mysqli :: get_charsetを介した現在の接続の文字セット情報を取得します。

  • getConnectionInfoメソッドは、ホスト情報、クライアントバージョン、サーバーバージョンなど、データベース接続に関するいくつかの基本情報を返します。

3.デバッグツールを使用します

これで、共通のデータベースデバッグツールクラスを作成しました。次に、このツールクラスを使用してデータベース情報を照会し、文字セットを表示する方法を示します。

 <?php
// デバッグツールクラスが含まれています
include 'DbDebugger.php';

// データベース接続を作成します
$conn = new mysqli($servername, $username, $password, $dbname);

// インスタンス化されたデータベースデバッグツール
$dbDebugger = new DbDebugger($conn);

// クエリを実行して結果を出力します
$sql = "SELECT * FROM users";
$queryResult = $dbDebugger->executeQuery($sql);
echo "<pre>";
print_r($queryResult);
echo "</pre>";

// 現在接続されている文字セット情報を出力します
echo "現在の接続文字セット: " . $dbDebugger->getCharsetInfo()['charset'] . "<br>";

// 出力接続情報
$connectionInfo = $dbDebugger->getConnectionInfo();
echo "ホスト情報: " . $connectionInfo['host'] . "<br>";
echo "クライアントバージョン: " . $connectionInfo['client_version'] . "<br>";
echo "サーバーバージョン: " . $connectionInfo['server_version'] . "<br>";
?>

説明する:

  • 最初に、 DBDebuggerクラスをインスタンス化し、データベース接続オブジェクト$ connに渡します。

  • executeQueryメソッドは、SQLクエリを実行して結果を出力するために呼び出されます。

  • getCharSetInfoを使用して、現在接続されている文字セット情報を取得して表示します。

  • getConnectionInfoを使用して、接続のホスト情報、クライアントバージョン、サーバーバージョンを出力します。

4.文字セット情報を表示します

mysqli :: get_charsetは、現在の接続の文字セット情報を含む連想配列を返します。たとえば

Array
(
    [charset] => utf8mb4
    [collation] => utf8mb4_general_ci
)

UTF-8、UTF-8MB4などのCharSetキーを介してセットされた現在の文字セットの情報を取得できます。文字セットは、データベースのストレージと読み取りに非常に重要であり、アプリケーションがキャラクターデータを正しく処理できるようにすることができます。

要約します

この記事では、PHPを使用して共通のデータベースデバッグツールを作成する方法を示しています。 MySQLI :: get_charsetメソッドを介して、現在のデータベース接続の文字セット情報を簡単に取得できます。さらに、このツールの助けを借りて、データベースを照会したり、接続情報を取得したりすることもできます。このツールは、開発中のデータベース接続、クエリの実行、その他の操作のデバッグに非常に役立ちます。