|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : avril 2005 Messages : 24 ![]() |
Bonjour,
Dans le cas du développement d'une application PHP, je cherche à comprendre la meilleure méthode de gestion de l'accès à la base. Je dispose d'une classe "d'abstraction" dbManager qui a les méthodes suivantes : - function loadDSNConfiguration () //Charge les informations à partir d'un fichier xml. - function createSQLConnexion ()//place dans une variable privée dbManager de la classe un nouvelle object mysqli - function getDbManager() retourne l'objet dbManager=objet Mysqli. - function doquery() //exécute et traite et renvoie dans un tableau le résultat de la requête. tel que je vois les choses, le problème de cette architecture, est que pour chaque page php je vais devoir créer un objet dbManager puis faire dbManager->loadDSNConfiguration (); dbManager->createSQLConnexion (); dbManager->doquery($query); D'où ma question : comment faire pour pouvoir simplement sur chaque page exécuter une requête sans avoir à reloader les info du DSN puis recréer une connexion à la base ? Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Développeur informatique Inscription : août 2005 Messages : 1 179 ![]() |
Salut,
il te suffit d'implémenter l'appel à ces méthodes (loadDSNConfiguration et createSQLConnexion) dans le constructeur. si tu veux personnaliser les paramètres de connexion dans ce cas tu pourras soit jouer avec des accesseurs, soit surcharger le constructeur et passer ses paramètres aux fonctions implémentées.
__________________
http://cdemarche.developpez.com/ Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : avril 2005 Messages : 24 ![]() |
Bonjour,
Tout d'abord, merci de votre réponse. Toutefois, cela signifie que pour chaque page je vais recréer une connexion à Mysql ! Et c'est ce la que je voudrais éviter. En fait à chaque fois que je vais avoir besoin de faire une requête dans une page, je vais imposé au système un parsage de fichier xml (même si je le met dans mon constructeur) puis une connection à la base. donc une utilisation de ressource que je souhaiterai éviter autant que possible. Est-il possible soit de récupérer une connection existente à Mysql de manière à éviter de recréer une connection ? Soit d'avoir une sorte de persistance de ma classe dbManager, afin qu'elle ne soit compiler qu'une fois et que je puisse y accéder de n'importe qu'elle page de mon application ? (mais en l'absence de serveur d'application je ne vois pas comment). |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Développeur informatique Inscription : août 2005 Messages : 1 179 ![]() |
tu te réponds tout seul mon ami
par contre je ne comprends pas trop ton interrogation, si tu ne construit ton objet qu'une seule fois par script, la connexion n'est donc effectuée qu'une seule fois, tu peux donc agir autant de fois que tu veux sur la methode query. évidemment, la connexion sera faite sur chaque page... avec mysql tu pouvais utiliser le mode persistant : mysql_pconnect() mais il fallait bien gérer les paramètres de ton serveur, lis bien en bas de la page
__________________
http://cdemarche.developpez.com/ Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : avril 2005 Messages : 24 ![]() |
En fait ma question c'était comment éviter de refaire une connection sur chaque page.
D'après la doc mysqli pour Mysql 5 je ne crois pas qu'il y aie d'équivalent à mysql_pconnect en objet. Mais comme tu le soulignes il faut refaire une connection à la base sur chaque page php. C'est juste qu'il semble qu'il soit plus lours de faire des création/fermeture de connection à la base que réutilisé une connection existante ou un pool de connection. |
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() Développeur informatique Inscription : août 2005 Messages : 1 179 ![]() |
Citation:
__________________
http://cdemarche.developpez.com/ Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
|
|
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : avril 2005 Messages : 24 ![]() |
Je te remercie encore pour tes réponses.
je m'en vais de ce pas implémenter tout cela. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com