Maison > développement back-end > tutoriel php > Pourquoi mon objet PHP mysqli se ferme-t-il prématurément, provoquant l'erreur « L'objet mysqli est déjà fermé/impossible de récupérer l'erreur mysqli » ?

Pourquoi mon objet PHP mysqli se ferme-t-il prématurément, provoquant l'erreur « L'objet mysqli est déjà fermé/impossible de récupérer l'erreur mysqli » ?

Barbara Streisand
Libérer: 2024-12-03 00:57:15
original
324 Les gens l'ont consulté

Why is my PHP mysqli object closing prematurely, causing

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal