Position actuelle: Accueil> Derniers articles> Écrivez un outil de débogage de la base de données générale pour afficher les informations de connexion à l'aide de mysqli :: get_charset

Écrivez un outil de débogage de la base de données générale pour afficher les informations de connexion à l'aide de mysqli :: get_charset

M66 2025-05-22

Dans PHP, les outils de débogage de la base de données peuvent aider les développeurs à afficher et à gérer facilement l'état de la connexion, l'état d'exécution de la requête, le jeu de caractères et d'autres informations avec la base de données. Cet article utilisera un exemple pour montrer comment rédiger un outil de débogage de la base de données commun et utiliser MySQLI :: Get_Charset pour afficher les informations de jeu de caractères de la actuellement connectée.

1. Connexion de la base de données

Tout d'abord, nous avons besoin d'un objet de connexion de base de données pour faire fonctionner la base de données. Lorsque vous utilisez l'extension MySQLI , vous pouvez créer une connexion avec le code suivant:

 <?php
// Configuration de la connexion de la base de données
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// Créer une connexion
$conn = new mysqli($servername, $username, $password, $dbname);

// Vérifiez la connexion
if ($conn->connect_error) {
    die("Échec de la connexion: " . $conn->connect_error);
}
?>

Ici, nous créons un objet de connexion $ Conn qui se connecte à la base de données MySQL test_db . Si la connexion échoue, un message d'erreur sera sorti et le script sera terminé.

2. Créez un outil de débogage de base de données commun

Ensuite, nous rédigerons une classe d'outils de débogage de la base de données générale, qui peut effectuer des requêtes simples, afficher les informations de connexion, voir les ensembles de caractères, etc.

 <?php
class DbDebugger {
    private $conn;

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

    // Exécutez la requête et renvoyez le résultat
    public function executeQuery($sql) {
        $result = $this->conn->query($sql);
        if ($result === false) {
            return "Erreur de requête: " . $this->conn->error;
        }
        
        $rows = [];
        while ($row = $result->fetch_assoc()) {
            $rows[] = $row;
        }
        return $rows;
    }

    // Obtenez les informations du jeu de caractères de la connexion actuelle
    public function getCharsetInfo() {
        return $this->conn->get_charset();
    }

    // Obtenir les informations de connexion actuelles
    public function getConnectionInfo() {
        return [
            'host' => $this->conn->host_info,
            'client_version' => $this->conn->client_version,
            'server_version' => $this->conn->server_version,
        ];
    }
}
?>

expliquer:

  • La classe DBDebugger accepte un objet de connexion MySQLI en tant que paramètre au constructeur.

  • La méthode EXECUTEQUERY exécute une requête SQL et renvoie le résultat de la requête. Si la requête échoue, un message d'erreur sera renvoyé.

  • La méthode GetCharseTinfo obtient les informations de jeu de caractères de la connexion actuelle via mysqli :: get_charset .

  • La méthode GetConnectionInfo renvoie certaines informations de base sur la connexion de la base de données, telles que les informations de l'hôte, la version client et la version du serveur.

3. Utilisez des outils de débogage

Maintenant, nous avons créé une classe d'outils de débogage de base de données commune. Ensuite, montrez comment utiliser cette classe d'outils pour interroger les informations de la base de données et afficher les ensembles de caractères.

 <?php
// Comprend des classes d&#39;outils de débogage
include 'DbDebugger.php';

// Créer une connexion de base de données
$conn = new mysqli($servername, $username, $password, $dbname);

// Outil de débogage de la base de données instanciée
$dbDebugger = new DbDebugger($conn);

// Exécuter la requête et sortir le résultat
$sql = "SELECT * FROM users";
$queryResult = $dbDebugger->executeQuery($sql);
echo "<pre>";
print_r($queryResult);
echo "</pre>";

// Sortie les informations de jeu de caractères de la
echo "Jeu de caractères de connexion actuel: " . $dbDebugger->getCharsetInfo()['charset'] . "<br>";

// Informations sur la connexion de sortie
$connectionInfo = $dbDebugger->getConnectionInfo();
echo "Informations sur l&#39;hôte: " . $connectionInfo['host'] . "<br>";
echo "Version client: " . $connectionInfo['client_version'] . "<br>";
echo "Version du serveur: " . $connectionInfo['server_version'] . "<br>";
?>

expliquer:

  • Nous instancions d'abord la classe DBDebugger et passons dans l'objet de connexion de la base de données $ Conn .

  • La méthode EXECUTEQUERY est appelée pour exécuter la requête SQL et sortir le résultat.

  • Utilisez GetCharSetInfo pour obtenir et afficher les informations du jeu de caractères de la connexion actuellement connectée.

  • Utilisez GetConnectionInfo pour sortir les informations hôte, la version client et la version du serveur de la connexion.

4. Informations sur le jeu de caractères d'affichage

mysqli :: get_charset renvoie un tableau associatif contenant les informations de jeu de caractères de la connexion actuelle, par exemple:

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

Nous pouvons obtenir les informations de la définition de caractères actuelles via la touche Charset , telles que UTF-8, UTF-8MB4, etc. Les ensembles de caractères sont très importants pour le stockage et la lecture des bases de données, en s'assurant que l'application peut traiter correctement les données des caractères.

Résumer

Cet article montre comment rédiger un outil de débogage de base de données commun à l'aide de PHP. Grâce à la méthode MySQLI :: get_charset , nous pouvons facilement obtenir les informations de jeu de caractères de la connexion de la base de données actuelle. De plus, avec l'aide de cet outil, nous pouvons également interroger la base de données, obtenir des informations de connexion, etc. Cet outil est très utile pour déboguer les connexions de la base de données, l'exécution de la requête et d'autres opérations pendant le développement.