Utilisation d'une classe Log avec Mysqli
Bonjour à tous,
Suite au tutoriel de gestion des exceptions php présent sur ce site j'ai construit une classe de log qui utilise mysqli pour la connexion à la base mysql.
J'instancie cette classe au début de mes scripts pour ouvrir une connexion. Lorsque je veux loguer une exception je dois utiliser l'objet mysqli pour éviter de me reconnecter à la base.
Est-ce que je dois recréer un objet Mysqli pour chaque nouvelle instance de la classe log ou est-il possible d'utiliser l'objet créer en début de script (qui a déjà ouvert une connexion)?
Merci d'avance pour vos réponses.
Réponses apportées à cette discussion
Bonjour Clébert,
Non il faut utiliser la seule et unique instance de votre classe MySQLi puisqu'elle contient la connexion à la BDD. Si vous l'instanciez plusieurs fois, vous allez créer plusieurs connexions à MySQL inutile qui coûte cher en performances.
Emacs> Il me semble que la connexion à la base ne se fait qu'une seule fois avec mysqli_connect() même si tu y fais appel plusieurs fois.
En gros le singleton est fait du coté de l'extension mysqli de PHP. Donc pas besoin de t'emmerder.
Ceci dit c'est important de bien comprendre l'intéret du singleton dans ce genre de manipulation souvent couteuses en performances.
++
Cyruss
Content que tu viennes poster ton avis ici Cyril :)
J'apprends quelque chose concernant mysqli_connect(). Il faudrait que je teste pour vérifier ça.
Merci beaucoup !! c'était justement l'objet de mon post, je pensais qu'à chaque instance de la classe Mysqli, on relançait une connexion ..
Du coup, dès que j'ai besoin de la BDD dans une classe, je peux recréer un objet Mysqli sans me soucier de rien.
Bonne journée