Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/03/2007, 11h42   #1
Membre du Club
 
Inscription : août 2005
Messages : 171
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 171
Points : 40
Points : 40
Par défaut Utilisation de mysqli

Bonjour,

Je débute en POO, et je me demande s'il vaut mieux que j'ouvre une connection mysql en début de page pour la refermer à la fin (et passer l'objet créé par mysqli en paramètre pour que tous mes objets utilisent cette connection), ou s'il vaux mieux que je l'ouvre et la referme à cuaque création d'objet.

Pour donner un exemple, faut-il mieux faire ça :
Code :
1
2
3
4
5
$bdd=new mysqli (...);
$mon_objet1=new objet1 ($bdd);
$mon_objet2=new objet2 ($bdd);
(...)
$bdd->close();
ou ça :
Code :
1
2
$mon_objet1=new objet1 ();
$mon_objet2=new objet2 ();
où chaque constructeur ouvrira une connection avec mysqli...

Je ne sais pas si je suis très clair...
ChriGoLioNaDor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 12h13   #2
Membre éprouvé
 
Avatar de d-Rek
 
Développeur Web
Inscription : janvier 2007
Messages : 438
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2007
Messages : 438
Points : 400
Points : 400
D'un point de vue logique, mieux vaut ouvrir, effectuer tous tes traitements et fermer plutôt que d'ouvrir, traiter une chose, fermer, puis ouvrir, traiter une autre, fermer, etc..

Mais tu parles bien d'ouvrir une connexion pas d'exécution de requêtes ?
Tout de façon, ça revient au même pour la solution que je te donne.
d-Rek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 12h50   #3
Membre du Club
 
Inscription : août 2005
Messages : 171
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 171
Points : 40
Points : 40
Merci de ta réponse

En effet, d'habitude (en php4) je n'ouvrais qu'une fois ma connection par page. Mais avec le langage objet, mon soucis est qu'il faut à chaque fois passer l'objet $bdd à chaque initialisation, ce que je ne trouve pas super pratique. Et passer par une variable globale, ce n'est pas top non plus...
ChriGoLioNaDor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 14h03   #4
Membre éprouvé
 
Avatar de d-Rek
 
Développeur Web
Inscription : janvier 2007
Messages : 438
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2007
Messages : 438
Points : 400
Points : 400
Sinon pour te conforter.. tu peux calculer le temps d'exécution de ton script et le comparer à celui de l'autre méthode.
Etant donné que tu te reconnectes, tu te réidentifies et donc ça devrait mettre plus de temps dans la 1ère méthode.
d-Rek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2007, 14h10   #5
Membre du Club
 
Inscription : août 2005
Messages : 171
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 171
Points : 40
Points : 40
Pas de soucis à ce niveau, je te fais confiance (comme je te le disais, c'est déjà ce que je faisais avant, donc je suis déjà convaincu ). Mon soucis par contre est que je ne vois pas comment ouvrir une connection pour l'ensemble de la page, en utilisant mysqli (en objet), pour pouvoir executer des requêtes dans mes autres classes...

Dois-je obligatoirement passer l'objet $bdd dans mes constructeurs, pour ensuite le définir comme attribut de classe (afin que ma bdd soit utilisable par toutes les méthodes de ma classe)? Avec la version procédurale, je peux ouvrir la connection au début, faire toutes mes requêtes, puis fermer à la fin de ma page, mais c'est un peu dommage de faire de la POO et d'utiliser les fonctions en procédurales, je trouve... :S
ChriGoLioNaDor est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h55.


 
 
 
 
Partenaires

Hébergement Web