Var static php5 pr class connection mysql ???

bonjour,

je suis en train de développer une appli web en php5 mysql
j'ai creer une classe utils où il y a mes fonctions utilisé svt ...

ex : les fonctions de connection, déconnection à la base de données (avec recherche des variables de connections dans fichier de configue, ...)
ces fonctions sont déclaré en static car on peu les apeller sans instancier utils

mais voila le probléme :
pour clore la connection à la bdd, il faut l'identifiant de la connection
or cet identifiant n'est pas connu de la fonction de déconnection car indépendante de la fonction de conexcion.

je ne veux pas non plus devoir passer cet identifiant à l'apel de la déconnection (car sera le plus svt apelé automatiquement ds des fonctions de cloture de page)

donc j'ai mis cet identifiant en variable globale de ma class util
mais j'ai du la mettre en static ( car les fonctions de (dé)connection à la bdd sont static)

et la c'est le vrai probléme que je me pose :
n'y a t'il pas de danger d'erreur en vue à placer l'identifiant de connection en static ? car celà signifie (en java, jsp par exemple) que c'est la même variable pour toutes les pages donc que des pages peuvent modifier cette variable pendant que d'autre l'utilise ...
ça ne risque pas de pauser probléme ??

merci d'avance
cordialement blbg

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
un gd merci à tous ceux qui nous aides ... :o)
Configuration: apache 2
php 5

7 réponses

  1. slt
    je cherche tout les script de php5
    aussi comment en peut connecté avec sqlserver7 (with php5)
    1. Jamais entendu parlé avec apache. Possible de le gérer par programmee.
      Je reste intéresser par l'info le jour où tu revois ta source.
      Sinon vis à vis de l'autre post, apache et l'ensemble des clients ne supportent
      pour l'instant que l'autentification Basic, le mode Digest est expérimental.
      http://httpd.apache.org/docs-2.0/mod/mod_auth_digest.html
      1. Si c'est apache, y a aucun souci au niveau des 'static', ils sont local à une page,
        plusieurs requettes à un même script = plusieurs pages.
        Il n'y a donc pas de confusion. 


        c'est bien apache 2 que j'utilise ...

        dc merci du renseignement ...
        me voila soulagé ...

        comme tu à l'air assez callé en apache ...
        j'ai une autre question ...
        d'aprés ce que j'ai vu sur le net il n'y a pas de moyen de limiter le nombre de tentative de connection suite à une protection via .htaccess
        mais d'aprés mon collégue (qui est parti en vacance ...donc pas possible de le contacter : le veinard :ob )
        ça serait possible ...

        dc sais tu si c'est possible ou non ?

        + d'info sur ma question ici : http://www.commentcamarche.net/forum/affich-1453976--htaccess-tentative-de-connection-limit%E9-%E0-3x
        1. ok merci crabs

          je sais que le mettre dans un objet à part c'est normalement le mieux
          on creer un objet connecxion, ... etc ..
          sauf que dans ce cas on est obligé de fermer explicitement l'objet ...
          ou alor l'instancier avec tjs le même nom et à la fin verifier si cette variable est définie ou pas ...

          pour les sessions ... oui c'est normal que si une personne charge deux fois une page ... ça sera pas les même variables

          mais tomcat (serveur web jsp, ... ) , lui gére trés bien les variables static d'objet ( on charge une page, puis 5min aprés .. on la recharge, il s'agit tjs de la même variable)
          dc c'est pour ça que je demander ... même si apache n'est pas objet comme tomcat ...

          & je demander aussi pour le cas ou 2 personne demande une page en même temps ..
          (apache doit avoir plusiseur processus qui doivent donc pouvoir travailler en même tps .. )
          si dans se cas là ... il n'y aurais pas confusion ...


          cordialement blbg
          1. Salut,
            Au niveau conceptuel, une connection à une base de données c'est un objet.
            Tu utilises cet objet avec des méthode connecter(), fermer(), requete() etc...
            Tu fait complètement abstraction dans tes programmes à mysql. Le jour ou
            tu changes de SGBD, tu n'as qu'à modifier la classe.

            De plus, dans le cas d'application plus complexe tu peux avoir besoin de
            plusieurs connections vers des bd différentes, comment le faire avec un
            identifiant global ?

            Sinon pour ta question, toutes tes variables ne sont valables que pour le
            script en cours. Les autre scripts, s'exécutant en simultané ou en décalé, ont
            leurs propres espaces mémoire, sinon pourquoi inventer les sessions ?

            A+