Var static php5 pr class connection mysql ???

Fermé
blbg Messages postés 302 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 22 novembre 2007 - 19 avril 2005 à 09:56
 r_s - 13 mars 2008 à 14:36
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)
A voir également:

7 réponses

crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 506
19 avril 2005 à 17:46
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+
1
blbg Messages postés 302 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 22 novembre 2007 10
19 avril 2005 à 17:32
personne ne sais ??
si ça peu poser des problémes ??
0
blbg Messages postés 302 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 22 novembre 2007 10
20 avril 2005 à 10:08
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
0
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 506
20 avril 2005 à 18:25
Salut,
Si tu bosses en PHP5, les objects ont des notions de constructeur et
destructeur, appelés automatiquement.
See http://www.php.net/manual/fr/language.oop5.decon.php
et http://www.php.net/manual/fr/language.oop5.static.php
Quel serveur WEB utilises tu ?
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blbg Messages postés 302 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 22 novembre 2007 10
21 avril 2005 à 09:15
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
0
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 506
21 avril 2005 à 18:20
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
0
slt
je cherche tout les script de php5
aussi comment en peut connecté avec sqlserver7 (with php5)
0