Rechercher : dans
Par :

Var static php5 pr class connection mysql ???

Dernière réponse le 13 mar 2008 à 14:36:57 blbg, le 19 avr 2005 à 09:56:29 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « var static php5 pr class connection mysql ??? » dans :
MySQL en console sur Windows : désactiver le bip d'erreur VoirLorsque vous utilisez MySQL en console sur Windows, chaque erreur provoque un bip. Pour le désactiver, il vous suffit simplement de rajouter le paramètre -b dans votre chaîne de connexion : mysql -b -h serveur -u utilisateur -p Vos voisins...
MySQL - Savoir qui est connecté et qui fait quoi VoirPour connaître qui est connecté et ce qu'il fait au niveau d'une base MySQL il suffit de lancer la commande : mysql> show processlist; La liste des process et des utilisateur s'affiche. Pour terminer un processus, il suffit de le tuer en...
Java - L'API JDBC VoirIntroduction à JDBC La technologie JDBC (Java DataBase Connectivity) est un ensemble de classes permettant de développer des applications capables de se connecter à des serveurs de bases de données (SGBD). L'accès aux bases de données avec...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
Java: Les méthodes VoirLa notion de fonction et de méthode On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs...

1

blbg, le 19 avr 2005 à 17:32:26

Personne ne sais ??
si ça peu poser des problémes ?? *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
un gd merci à tous ceux qui nous aides ... :o)

Répondre à blbg

2

crabs, le 19 avr 2005 à 17:46:13
  • +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+ Besides, I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding

Répondre à crabs

3

blbg, le 20 avr 2005 à 10:08:50

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

Répondre à blbg

4

crabs, le 20 avr 2005 à 18:25:10

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. Besides, I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding

Répondre à crabs

5

blbg, le 21 avr 2005 à 09:15:28

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--htacces­s-tentative-de-connection-limit%E9-%E0-3x
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
un gd merci à tous ceux qui nous aides ... :o)

Répondre à blbg

6

crabs, le 21 avr 2005 à 18:20:12

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 Besides, I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding

Répondre à crabs

7

 r_s, le 13 mar 2008 à 14:36:57

Slt
je cherche tout les script de php5
aussi comment en peut connecté avec sqlserver7 (with php5)

Répondre à r_s