Lorsque vous utilisez l'extension MySQLI de PHP pour développer des applications liées à la base de données, la méthode MySQLI :: Debug () peut être utilisée pour produire des informations de débogage, ce qui est très utile pour le dépannage des problèmes lors de la connexion et de l'exécution. Cependant, dans un environnement de production, activer le journal de débogage affectera non seulement les performances, mais peut également divulguer des informations sensibles. Par conséquent, il est très nécessaire de comprendre comment déboguer la sortie du journal.
MySqli :: Debug () est une méthode utilisée pour contrôler la fonction de débogage de la bibliothèque LibmysqlClient . Une fois qu'il a été appelé, la bibliothèque client MySQL sortira les informations de débogage spécifiées dans le fichier journal. Par exemple:
mysqli::debug("d:t:o,/tmp/client.trace");
Cela permettra la fonction de débogage et sortira les informations de débogage dans le fichier /tmp/client.trace .
Pour désactiver la sortie de débogage, il y a deux points clés à noter:
Le moyen le plus direct est de ne pas appeler la méthode mysqli :: debug () . Si vous l'utilisez dans votre code de test, assurez-vous qu'il est commenté ou supprimé lors du déploiement de l'environnement de production.
Le manuel PHP officiel indique que si MySQLI :: Debug ("") est appelé, vous pouvez réinitialiser la configuration de débogage . Bien que cela n'effacera pas le contenu du fichier journal, la sortie de débogage ultérieure peut être arrêtée.
mysqli::debug("");
?? Mais veuillez noter que si cette méthode fonctionne dépend de l'implémentation de la bibliothèque client MySQL sous-jacente, et certaines versions peuvent toujours écrire dans le fichier journal.
Si vous utilisez l'extension mysqli basée sur libmysqlclient , vous pouvez également contrôler le comportement de débogage en définissant la variable d'environnement MySQL_DEBUG :
; php.ini
mysqlnd.debug = ""
Ou définir lorsque le démarrage de PHP:
export MYSQL_DEBUG=""
php yourscript.php
Cela permettra à PHP de démarrer sans aucune configuration de débogage, arrêtant ainsi complètement la sortie de débogage.
<?php
// Rien n'est activé mysqli Configuration de débogage
mysqli::debug("");
// Créer une connexion de base de données
$mysqli = new mysqli("localhost", "username", "password", "database");
// Vérifiez si la connexion réussit
if ($mysqli->connect_error) {
die("Échec de la connexion: " . $mysqli->connect_error);
}
// Exécuter une requête
$result = $mysqli->query("SELECT * FROM users");
// Résultats de traitement
while ($row = $result->fetch_assoc()) {
echo "nom d'utilisateur:" . $row["username"] . "<br>";
}
// Fermer la connexion
$mysqli->close();
?>
La clé pour clôturer le journal de débogage MySqli :: Debug () est d' éviter d'appeler les fonctions de débogage ou de compenser les configurations de variables d'environnement . Les journaux de débogage sont libres de résoudre les problèmes dans les environnements de développement, mais dans les environnements de production, assurez-vous de vous assurer que toutes les sorties de débogage sont fermées pour une sécurité et des performances améliorées.