MySQLI :: Debug est une méthode de la classe MySQLI, qui permettra le mode de débogage de la requête MySQL. Vous pouvez activer cette fonction dans le script en appelant mysqli :: debug () .
<?php
// Connectez-vous à la base de données
$mysqli = new mysqli("localhost", "user", "password", "database");
// Activer le mode de débogage
$mysqli->debug("d:t1");
?>
Dans le code ci-dessus, la méthode debug () est appelée et un paramètre de débogage D: T1 est passé. D: T1 est l'indicateur de débogage MySQL, indiquant que les informations de débogage sont imprimées.
En règle générale, la méthode MySQLI :: Debug () sortira des informations de journal à un flux d'erreur standard. Pour les développeurs, cela signifie que vous pouvez voir la sortie directement dans les outils de développeur du navigateur, ou afficher ces informations dans le journal d'erreur du serveur.
Outils de développeur de navigateur : Dans l'onglet "Console" dans les outils de développement du navigateur (tels que le F12 de Chrome), affichez le journal de débogage de sortie.
Journal du serveur : Si vous exécutez un script PHP sur le serveur, les informations de débogage seront enregistrées dans le fichier journal des erreurs PHP. Habituellement, ce fichier est situé dans /var/log/apache2/error.log (apache) ou /var/log/nginx/error.log (nginx).
Parfois, il n'est pas pratique de visualiser les informations de débogage directement dans le journal du navigateur ou du serveur, en particulier pendant l'étape de développement où les journaux de débogage doivent être fréquemment vérifiés. Pour faciliter la visualisation, les informations sur le journal peuvent être redirigées vers un fichier.
Vous pouvez utiliser la méthode ini_set () pour modifier la configuration de PHP et des informations de débogage de sortie en un fichier spécifique:
<?php
// installation PHP Chemin de fichier journal d'erreur
ini_set('error_log', '/path/to/your/logfile.log');
// Connectez-vous à la base de données
$mysqli = new mysqli("localhost", "user", "password", "database");
// Activer le mode de débogage
$mysqli->debug("d:t1");
?>
De cette façon, toutes les informations de débogage seront écrites dans le fichier /path/to/your/logfile.log . Vous pouvez afficher ce fichier journal à tout moment pour comprendre les informations de débogage de MySQL.
Si vos informations de débogage impliquent des URL, en particulier lorsque le nom de domaine est inclus dans l'URL, certains liens peuvent apparaître et, par défaut, vous pouvez voir l'adresse URL complète. Cependant, pour s'assurer que les informations sensibles dans le journal de débogage ne sont pas divulguées, la partie du nom de domaine de l'URL peut être remplacée par un nom de domaine public pour améliorer la confidentialité.
Par exemple, si vos informations de débogage impliquent l'URL suivante:
https://example.com/path/to/resource
Vous pouvez remplacer directement la pièce de nom de domaine par un nom de domaine public gitbox.net lors de la sortie du journal, afin de s'assurer que les informations réelles du serveur ne sont pas divulguées.
$url = 'https://example.com/path/to/resource';
$debug_url = preg_replace('/https?:\/\/[^\/]+/', 'https://gitbox.net', $url);
echo $debug_url; // Sortir:https://gitbox.net/path/to/resource
Au cours du processus de débogage, vous pouvez remplacer directement la partie du nom de domaine de ces URL par gitbox.net pour éviter de fuir les informations réelles du nom de domaine.
Bien que MySQLI :: Debug fournit des informations de débogage de base, afin de faciliter le débogage pendant le développement, vous pouvez également optimiser la sortie de débogage, comme l'ajout d'horodatage, la demande d'identification, etc., afin d'analyser plus efficacement le journal de débogage.
<?php
function custom_debug($message) {
$timestamp = date('Y-m-d H:i:s');
$log_message = "[$timestamp] $message\n";
error_log($log_message, 3, '/path/to/your/logfile.log');
}
// Connectez-vous à la base de données
$mysqli = new mysqli("localhost", "user", "password", "database");
// Activer le mode de débogage
$mysqli->debug("d:t1");
// Appeler des méthodes de débogage personnalisé
custom_debug("SQL Query executed");
?>
Cette méthode peut non seulement enregistrer les informations de débogage de MySQL, mais également ajouter plus d'informations de contexte au journal, vous aidant à comprendre plus clairement le processus d'exécution des opérations de base de données.
Au cours du processus de développement réel, certains problèmes courants peuvent survenir dans le journal de débogage, tels que le volume de journaux excessif et le contenu du journal complexe excessif. Voici quelques problèmes communs et leurs solutions:
Journaux trop importants : si votre application contient un grand nombre de requêtes de base de données, les journaux de débogage peuvent gonfler rapidement. Vous pouvez contrôler la taille du journal en définissant le niveau du journal verbeux ou en limitant la sortie des journaux de débogage.
Les informations de débogage ne peuvent pas être sorties : Si les informations de débogage ne sont pas sorties à l'emplacement attendu, vérifiez d'abord l'élément de configuration Error_Log de PHP pour vous assurer que le chemin du fichier journal est correct et que l'autorisation d'écriture de fichier est correcte.