Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Classe d'accès à une base de données [ Base de données / MySQL ] (MadM@tt)

lundi 2 juin 2008 à 15:26:18 | Classe d'accès à une base de données

MadM@tt

Membre Club
Bonjour à tous,

Voilà j'ai réalisé une classe de connexion à une base de données.
Seulement maintenant, pour l'utiliser, je suis face à un choix sur lequel j'ai du mal à me décider :
est-ce que je redéclare une nouvelle classe (et donc nouvelle connexion) dans chaque fonction qui doit executer une requete, ou alors je crée au début de ma page un objet (donc une connexion) et elle reste ouvert tout du long.
La 2è solution me semble être la meilleure, mais ça veut dire que pour toute classe ou fonction que je fais et qui a besoin d'executer une requete, il faut que je fasse :
global $database;
pour qu'elle soit accessible ?


Voilà, merci si vous pouvez m'aider.

- MadMatt -

 www.choisir-une-entreprise.com


lundi 2 juin 2008 à 16:42:55 | Re : Classe d'accès à une base de données

coucou747

salut

tu peux utiliser un Singleton, et une methode static dans ta classe :
$db = DB::getConnection();

ca te permet de recuperer ta connection sans faire de globales ou sans la passer en parametre.

lundi 2 juin 2008 à 16:47:55 | Re : Classe d'accès à une base de données

MadM@tt

Membre Club
Effectivement pourquoi pas, je vois le principe.
Mais je ne comprend pas en quoi ça résoudrait mon problème. Je devrais quand même, dans chaque fonction qui doit faire une requete, récupérer l'instance de ma classe... Donc autant l'instancier 1 fois au début de page et faire global $DB; dans chaque fonction ?

Merci

- MadMatt -


lundi 2 juin 2008 à 16:52:15 | Re : Classe d'accès à une base de données

coucou747

non

class DB{
private static $instance=false;

....

public static function getInstance(){
  if (self::$instance===false){
    self::$instance = new DB();
  }
  return self::$instance;
}

}

mardi 3 juin 2008 à 09:46:03 | Re : Classe d'accès à une base de données

MadM@tt

Membre Club
Ah effectivement je connaissais pas le self::$instance, c'est interessant.

Mais la à l'utilisation (désolé d'etre redondant), je ne vois pas comment ça simplifiera mon problème. En effet, dans mes fonctions qui doivent executer des requetes, je devrais faire un : $DB = getInstance() pour pouvoir récupérer une instance de la classe ? Donc ça me contraint quand même à rajouter 1 ligne de code dans chaque fonction.
C'est pourquoi j'hésite à supprimer ma classe et utiliser des fonctions toutes bêtes à la place en fait...

Merci

- MadMatt - [ Lien ]


mardi 3 juin 2008 à 14:24:43 | Re : Classe d'accès à une base de données

coucou747

Réponse acceptée !
ajouter une ligne de code et gagner en portabilite, proprete, lisibilite, facilite de debug, etc...

dans ta classe DB, tu peux gerer les Exceptions de ta db bien plus facilement, t'as des trucs facilement automatisables...



Cette discussion est classé dans : base, données, connexion, classe, accès


Répondre à ce message

Sujets en rapport avec ce message

Connexion à une base de données Paradox ! [ par orelien ] Bonjour !Voilà, j'aimerai me connecter à une base de données Paradox mais je n'y arrive pas !...Quelqu'un peut il m'aider ??Merci beaucoup.Orelien. connexion aun base de données [ par jessicalba ] bonjour jai posé cette question tout a lheure dans le thème base de données mais je nai pas eu de retour je rencontre un problème au niveau dune base wamp et base de données [ par chamallow ] Bonjour,Je suis confrontée à un problème bizarre avec wamp depuis que je l'ai installé sur ma machine (il y a 2mois).Pour informations, je suis sous W connexion base de données [ par lofely85 ] Bonjour, j'ai crée toutes mes pages pour mon site a laide du bloc note. j'aimerai le connecte a une base access (php\mysql) c'est pour cela ke jai Connexion base de données [ par MadM@tt ] Bonjour à tous,Voilà auparavant dans mes scripts, je faisais une connexion à mon serveur sql à chaque requete de ma page, et je fermais la connexion a Accès sécurisé [ par vxr888 ] Bonjour,Je suis entrain de créer un petit forum / système de login - password made in moi-même et pour sécuriser les mots de passe je les crypte en md Echec de la connexion au serveur de base de données [ par newsparallel ] Bonjour,j'ai heberger mon site sur le serveur MAROC TELECOM , mon probleme c'est que la base de données ne s'affiche pas la reponse est tjs :joomla Le Acceder a la base de données d'une machine virtuelle [ par mickael56100 ] Bonjour tout le monde, je souhaiterais accéder à la base de données d'une machine virtuelle. J'utilise Wamp Server sur les 2 machines, ma machine phys base des données d'un site web [ par mouradbatchen ] salut à tousje suis entrain de créer un site web dynamique du vente en ligneje fais tous les interface de site mais je ne sais comment faire sa base d exporter des données de la base vers excel [ par haythemsorbonne ] slt!Je suis entrain de travailler sur une base de données clientèle où il sera possible d'exporter les coordonnées des clients sur un fichier Excel. J


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.