Dans PHP, il est très important de déboguer les instructions SQL et de connecter des problèmes lors de l'utilisation de MySQLI pour les opérations de base de données. La classe MySQLI fournit une méthode de débogage qui peut nous aider à sortir des informations de débogage détaillées, mais par défaut, sa sortie est relativement dispersée et difficile à intégrer et à afficher. Cet article présentera comment capturer et intégrer les informations d'information de MySQLI :: déboguer dans un panneau de débogage personnalisé pour améliorer l'efficacité du débogage.
MySQLI :: Debug est une méthode statique fournie par l'extension MySQLI , qui peut rédiger des informations de débogage dans le fichier ou la cible de sortie spécifiée. Son utilisation typique est:
mysqli::debug('d:t:O,/path/to/debug.log');
Où le paramètre est une chaîne qui spécifie la catégorie et le chemin de sortie des informations de débogage. Par exemple:
D: T: O représente le niveau de débogage et la cible de sortie (par exemple, la sortie directement à l'écran)
/path/to/debug.log signifie écrire des informations de débogage dans le fichier spécifié
Par défaut, MySQLI :: Debug publiera de nombreuses informations de débogage sous-jacentes, ce qui est facile de localiser des problèmes de connexion ou de requête.
MySQLI :: Debug produit directement les informations par défaut et ne prend pas en charge le retour direct des chaînes. Pour intégrer ces informations dans un panneau de débogage personnalisé, il doit être "capturé" pour le traitement et l'affichage ultérieur.
La méthode consiste à capturer la sortie à l'aide des mécanismes de mise en mémoire tampon de la sortie de PHP ob_start () et ob_get_clean () :
// Allumez la tampon de sortie
ob_start();
// démarrer mysqli Débogage
mysqli::debug('d:t:O');
// Obtenez le contenu tampon
$debugOutput = ob_get_clean();
De cette façon, $ DebugOutput contient des informations de débogage, que nous pouvons enregistrer, formater ou transmettre au panel de débogage.
Ce qui suit est un code de démonstration qui intègre le processus de connexion MySQLI et les informations de débogage:
<?php
// démarrerSortir缓冲捕获 mysqli::debug Sortir
ob_start();
mysqli::debug('d:t:O'); // 设定Débogage到当前缓冲区
$debugInfo = ob_get_clean();
// Connectez-vous à la base de données
$mysqli = new mysqli('localhost', 'user', 'password', 'database');
if ($mysqli->connect_error) {
echo "Échec de la connexion: " . $mysqli->connect_error;
} else {
echo "Connexion avec succès!";
}
// Passer les informations de débogage à un panneau de débogage personnalisé(Impression simple ici)
echo "<pre style='background:#f0f0f0;padding:10px;border:1px solid #ccc;'>";
echo "MySQLi Debug information:\n";
echo htmlspecialchars($debugInfo);
echo "</pre>";
Si vous avez un panneau de débogage sur le Web, vous pouvez injecter dynamiquement les informations de débogage capturées dans le panneau de cette manière:
<?php
// Hypothèses $debugPanel est un objet de panneau de débogage ouHTMLrécipient
function addDebugInfoToPanel($info) {
// Vous pouvez formater ou ajouter des styles en fonction de vos besoins
$formatted = "<div class='debug-info' style='font-family: monospace; background:#222; color:#0f0; padding:10px; margin:10px 0;'>"
. nl2br(htmlspecialchars($info)) . "</div>";
echo $formatted;
}
// 捕获并Sortir调试information
ob_start();
mysqli::debug('d:t:O');
$debugOutput = ob_get_clean();
addDebugInfoToPanel($debugOutput);
De cette façon, les informations de débogage seront affichées dans votre panneau de débogage sous une forme stylisée et lisible.
Si vous souhaitez rédiger des informations de débogage dans un fichier pour analyse, vous pouvez spécifier les paramètres de MySqli :: Debug :
mysqli::debug('d:t:/var/log/mysqli_debug.log');
Combiné avec le cycle de script PHP, le contenu du fichier journal est lu régulièrement et poussé vers le panneau de débogage pour le suivi de l'historique pratique.
Les informations de débogage peuvent contenir des données sensibles et ne sont pas recommandées pour les activer dans un environnement de production.
La méthode de capture de tampon de sortie convient au développement rapide et au débogage. Il est recommandé d'utiliser un système de gestion de journaux spécial pour des projets complexes.
N'oubliez pas d'ajuster les autorisations de fichiers en fonction de l'environnement réel pour vous assurer que les fichiers journaux sont écrits.
En capturant la sortie de débogage de MySQLI :: Debug à l'aide de la fonction tampon de sortie de PHP, nous pouvons intégrer de manière flexible ces informations de débogage sous-jacentes dans un panneau de débogage personnalisé. Cela améliore considérablement l'efficacité de l'investigation et du positionnement des problèmes, et rend le processus de débogage des opérations de base de données plus intuitive et efficace.