IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Optimisé l'accès à une DB Mysql


Sujet :

SQL Procédural MySQL

  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 25
    Par défaut Optimisé l'accès à une DB Mysql
    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.

  2. #2
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    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.


  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 25
    Par défaut
    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).

  4. #4
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    tu te réponds tout seul mon ami , en php on ne fait pas de compilation, mais de l'interprétation donc pas d'instance proprement dite... donc impossible de créer un conteneur persistant.

    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


  5. #5
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 25
    Par défaut
    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.

  6. #6
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Citation Envoyé par nickola
    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.
    alors là, c'est clair... mais bon, encore une fois, on est pas dans un serveur d'application

  7. #7
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 25
    Par défaut
    Je te remercie encore pour tes réponses.
    je m'en vais de ce pas implémenter tout cela.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Accès à une base MySQL
    Par netwrok dans le forum Installation
    Réponses: 3
    Dernier message: 04/05/2010, 11h26
  2. Droit d'accès à une BDD MySql
    Par khouja dans le forum MySQL
    Réponses: 2
    Dernier message: 08/12/2009, 21h15
  3. [Visual Web Dev] Gérer l'accès à une BdD MySQL
    Par sanackas dans le forum ASP
    Réponses: 0
    Dernier message: 22/03/2008, 17h59
  4. Accès à une DB MySQL de l'extérieur
    Par Hoegaarden dans le forum Outils
    Réponses: 8
    Dernier message: 28/03/2006, 19h02
  5. [Dev-C++] Accès à une base MySQL
    Par Beetlejuice dans le forum Dev-C++
    Réponses: 8
    Dernier message: 08/05/2003, 13h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo