mysqli::query() : l'objet mysqli est déjà fermé / impossible de récupérer l'erreur mysqli
Le code PHP fourni utilise une classe (EventCalendar) qui gère les connexions à la base de données et exécute les requêtes. Cependant, le message d'erreur suggère que l'objet mysqli est déjà fermé ou qu'une erreur s'est produite lors de la récupération de l'erreur mysqli.
Comprendre l'erreur
Lorsque l'objet mysqli est fermé prématurément, les requêtes suivantes échoueront avec l'erreur "l'objet mysqli est déjà fermé". Cela peut se produire si l'objet DBConnect est fermé avant que toutes les requêtes n'aient été exécutées.
La partie secondaire de l'erreur, "Impossible de récupérer l'erreur mysqli", indique que le script a tenté de récupérer le message d'erreur associé. avec l'opération mysqli précédente, mais le message d'erreur n'a pas pu être récupéré, probablement en raison de la connexion fermée.
Résolution du problème Problème
Assurez-vous que l'objet DBConnect n'est pas fermé tant que toutes les requêtes nécessaires n'ont pas été exécutées. Dans le code fourni, l'objet DBConnect est fermé dans la méthode __destruct(). Déplacez la terminaison de connexion réelle vers un endroit plus approprié, par exemple après que toutes les requêtes ont été exécutées et que l'objet n'est plus nécessaire.
De plus, pensez à vérifier l'état de la connexion avant d'exécuter des requêtes pour gérer les problèmes de connexion potentiels avec élégance.
Exemple de code révisé
Voici une partie révisée du code qui traite de la fermeture potentielle problème :
// Function to add events to Zodiac calendar
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!