Enregistrement direct des erreurs PHP dans la base de données
Au lieu de s'appuyer sur le fichier error_log standard, est-il possible de configurer PHP pour afficher toutes les erreurs vers une base de données MySQL ?
Solution
Bien qu'il n'existe aucun moyen direct d'y parvenir sans écrire un gestionnaire d'erreurs personnalisé, cela permet d'appliquer une seule modification globale. La création d'un gestionnaire d'erreurs défini par l'utilisateur est la clé pour rediriger les messages d'erreur vers la base de données.
Exemple de code
Vous trouverez ci-dessous un exemple modifié du manuel PHP :
function myErrorHandler($errno, $errstr, $errfile, $errline) { $connection = ...; // Establish connection with MySQL $query = "INSERT INTO error_log (number, string, file, line) ". "VALUES ($errno, $errstr, $errfile, $errline)"; $result = mysql_query($query, $connection); return true; // Suppress PHP's internal error handling }
Pour définir le gestionnaire d'erreurs défini par l'utilisateur :
$old_error_handler = set_error_handler("myErrorHandler");
En implémentant ce gestionnaire d'erreurs personnalisé, toutes les erreurs PHP seront automatiquement enregistrées dans la base de données MySQL spécifiée, fournissant ainsi un système centralisé et plus organisé. moyen de gérer les erreurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!