Lorsque vous utilisez des bases de données MySQL dans PHP, l'extension MySQLI fournit un outil de débogage très utile - MySQLI :: Debug . Grâce à celui-ci, les développeurs peuvent obtenir des informations détaillées sur les requêtes de base de données, ce qui aide à résoudre les problèmes et à optimiser les opérations de base de données. Cet article expliquera comment afficher les informations de débogage de MySQLI :: débogage à l'avant de la page Web.
MySQLI :: Debug est une méthode statique de la classe MySQLI , qui peut imprimer les informations de débogage de la connexion de la base de données actuelle. Ces informations incluent les requêtes SQL exécutées, le plan d'exécution de la requête, l'état de la connexion de la base de données, etc. Ces informations sont très utiles pour les développeurs, en particulier lors du débogage des requêtes SQL complexes.
Par exemple, le code suivant publiera des informations détaillées sur l'opération de base de données actuelle:
mysqli::debug("d:t"); // Ici "d:t" Utilisé pour permettre la sortie de débogage
Cependant, par défaut, les informations de MySqli :: Debug sont sorties dans le journal d'erreur PHP. Si vous souhaitez afficher ces informations de débogage directement à l'avant de la page Web, ce qui suit expliquera comment y parvenir.
Pour afficher MySqli :: Debug Sortie à l'extrémité avant de la page Web, nous devons effectuer les étapes suivantes:
Tout d'abord, nous devons nous assurer que MySQLI :: Debug est activé et peut produire des informations de débogage.
// Activer la sortie de débogage
mysqli::debug("d:t");
La sortie des informations de débogage via MySqli :: Debug sera affiché directement dans le journal d'erreur PHP par défaut, mais pour les afficher à l'extrémité avant de la page Web, nous devons utiliser une méthode de mise en mémoire tampon de sortie pour capturer et imprimer les informations de débogage sur la page Web.
<?php
// Démarrer la tampon de sortie
ob_start();
// Connectez-vous à la base de données
$mysqli = new mysqli('localhost', 'username', 'password', 'database_name');
// Activer la sortie de débogage
mysqli::debug("d:t");
// Vous pouvez effectuer des opérations de requête de base de données
$query = "SELECT * FROM users WHERE id = 1";
$result = $mysqli->query($query);
// Obtenir des informations de débogage
$debug_info = ob_get_contents();
// Éteindre la tampon de sortie
ob_end_clean();
// Informations sur le débogage de sortie sur la page Web
echo '<pre>' . htmlspecialchars($debug_info) . '</pre>';
?>
Le code ci-dessus prend plusieurs étapes importantes:
ob_start () démarre la mise en mémoire tampon de sortie. Toutes les sorties seront temporairement enregistrées et ne seront pas affichées immédiatement au navigateur.
Après avoir connecté à la base de données et exécuté la requête, MySQLI :: Debug ("D: T") écrit des informations de débogage dans le tampon de sortie.
ob_get_contents () capture toutes les informations de sortie dans le tampon et les enregistre dans la variable $ debug_info .
OB_END_CLEAN () Close la mise en mémoire tampon de sortie pour empêcher la sortie des informations à plusieurs reprises.
Enfin, nous formons les informations de débogage avec la balise <pre> via la fonction Echo et la faisons sur la page Web.
Pour rendre les informations de débogage plus claires et plus faciles à lire sur les pages Web, vous pouvez personnaliser le style d'informations de débogage à l'aide de HTML et CSS. Voici un exemple simple:
<?php
// Démarrer la tampon de sortie
ob_start();
// Connectez-vous à la base de données
$mysqli = new mysqli('localhost', 'username', 'password', 'database_name');
// Activer la sortie de débogage
mysqli::debug("d:t");
// Effectuer des opérations de requête
$query = "SELECT * FROM users WHERE id = 1";
$result = $mysqli->query($query);
// Obtenir des informations de débogage
$debug_info = ob_get_contents();
// Éteindre la tampon de sortie
ob_end_clean();
// Format les informations de débogage sur la page Web et les sortir
echo '<div style="background-color: #f4f4f4; border: 1px solid #ccc; padding: 10px;">';
echo '<h3>Informations de débogage:</h3>';
echo '<pre style="font-size: 14px; color: #333; background-color: #f8f8f8; padding: 15px; border: 1px dashed #ddd;">' . htmlspecialchars($debug_info) . '</pre>';
echo '</div>';
?>
Cette approche rend les informations de débogage plus belles sur la page Web et facilite la lecture avec un style CSS personnalisé.
La sortie d'informations par MySQLI :: Debug peut contenir des informations de base de données sensibles, alors assurez-vous de les utiliser avec prudence dans les environnements de production. Dans un environnement de production, il est préférable de désactiver ou de limiter la production de débogage.
Lorsque les informations de débogage sont sorties à l'extrémité avant de la page Web, assurez-vous qu'aucune donnée sensible n'est divulguée, en particulier les paramètres ou le nom d'utilisateur et le mot de passe de la base de données dans les requêtes SQL.
Les informations de débogage peuvent être très importantes, donc si la quantité de données est trop importante, vous pouvez envisager d'enregistrer les informations dans un fichier journal au lieu de les diffuser directement sur une page Web.
En activant MySQLI :: Debug et en utilisant la mise en mémoire tampon de sortie, nous pouvons afficher des informations de débogage détaillées pour les opérations de base de données MySQL à l'extrémité avant de la page Web, ce qui est très utile pour le développement et le débogage. N'oubliez pas qu'avant d'être officiellement lancé, assurez-vous de désactiver la fonction de débogage pour éviter la fuite d'informations sensibles.