[POO]Classes PHP et connexion MySQL
Résolu/Fermé
ViDikk
Messages postés
69
Date d'inscription
jeudi 27 janvier 2011
Statut
Membre
Dernière intervention
24 février 2017
-
Modifié par ViDikk le 23/03/2011 à 10:06
Aktayen Messages postés 189 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 17 décembre 2015 - 23 mars 2011 à 11:07
Aktayen Messages postés 189 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 17 décembre 2015 - 23 mars 2011 à 11:07
A voir également:
- [POO]Classes PHP et connexion MySQL
- Gmail connexion - Guide
- Gmail connexion autre compte - Guide
- Connexion chromecast - Guide
- Mysql community server - Télécharger - Bases de données
- Site inaccessible n'autorise pas la connexion - Guide
5 réponses
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
20
23 mars 2011 à 10:22
23 mars 2011 à 10:22
Salut,
Si tu utilises ta bdd juste dans le constructeur, tu peux la fermer à la fin de celui-ci.
Perso quand je fais un site, j'inclus toutes mes pages dans une principale et j'ouvre ma connexion au début de celle ci et je la referme à la fin.
Si tu utilises ta bdd juste dans le constructeur, tu peux la fermer à la fin de celui-ci.
Perso quand je fais un site, j'inclus toutes mes pages dans une principale et j'ouvre ma connexion au début de celle ci et je la referme à la fin.
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
20
Modifié par Aktayen le 23/03/2011 à 10:45
Modifié par Aktayen le 23/03/2011 à 10:45
Pour ma part, j'ai ma page accueil.php
au début j'ouvre ma bdd
puis là j'appel mes pages en fonction de l'url
Et je ferme ma bdd;
si dans mes fonctions ou constructeurs j'ai besoin d'acceder à ma bdd je n'ai plus qu'à faire.
imaginons que je suis dans une page où j'ai besoin de ma classe utilisateur
Et donc là je n'ai créé qu'une seule instance de mon objet bd()..
Donc je pense que ta solution est l'utilisation du critère 'global'.
au début j'ouvre ma bdd
$bd-> new Bd();
puis là j'appel mes pages en fonction de l'url
include('...');
Et je ferme ma bdd;
$bd->fermerBd();
si dans mes fonctions ou constructeurs j'ai besoin d'acceder à ma bdd je n'ai plus qu'à faire.
imaginons que je suis dans une page où j'ai besoin de ma classe utilisateur
public class utilisateur { function mafonction(){ global $bd; // global signifie que j'utilise la même variable que celle existante (la ca va me chercher celle de ma page principale) $bd->executer....('SELECT ...'); }
Et donc là je n'ai créé qu'une seule instance de mon objet bd()..
Donc je pense que ta solution est l'utilisation du critère 'global'.
ViDikk
Messages postés
69
Date d'inscription
jeudi 27 janvier 2011
Statut
Membre
Dernière intervention
24 février 2017
23 mars 2011 à 10:35
23 mars 2011 à 10:35
Hello Aktayen,
Tout d'abord merci d'avoir pris le temps de me répondre :).
Ensuite, ma BDD n'est pas seulement utilisée dans mon constructeur, mais dans toute la classe. Par exemple, j'ai une fonction Enregistrer :
De plus, la technique que tu me conseille est déjà mis en place (j'ai un fichier connexion.php qui est inclus à chaque fois). Mais je trouve pas ca super propre non plus, de faire un include de connexion.php dans toutes mes classes...
Tout d'abord merci d'avoir pris le temps de me répondre :).
Ensuite, ma BDD n'est pas seulement utilisée dans mon constructeur, mais dans toute la classe. Par exemple, j'ai une fonction Enregistrer :
// Enregistre le contact dans la BDD public function Enregistrer(){ if(!$this->id){ $this->connexion->query("INSERT INTO user VALUES ('', 1, '". $this->utilisateur ."', '". $this->motdepasse ."', '". $this->nom ."', '". $this->prenom ."', '". $this->email ."', '". $this->telfixe ."', '". $this->telport ."')"); }else{ $this->connexion->query("UPDATE user SET utilisateur='". $this->utilisateur ."', niveau_admin=". $this->niveau .", nom='". $this->nom ."', prenom='". $this->prenom ."', email='". $this->email ."', tel_fixe='". $this->telfixe ."', tel_port='". $this->telport ."' WHERE user_id=". $this->id); } return $this->connexion->error ? "Echec de l'enregistrement." : "Enregistré !"; }
De plus, la technique que tu me conseille est déjà mis en place (j'ai un fichier connexion.php qui est inclus à chaque fois). Mais je trouve pas ca super propre non plus, de faire un include de connexion.php dans toutes mes classes...
ViDikk
Messages postés
69
Date d'inscription
jeudi 27 janvier 2011
Statut
Membre
Dernière intervention
24 février 2017
23 mars 2011 à 11:01
23 mars 2011 à 11:01
En effet, le "global" est ma solution !
:D
<?
for($i=1; $i<=1000; $i++){
echo "Merci Aktayen !!";
echo "<br />";
}
?>
:D
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Aktayen
Messages postés
189
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
17 décembre 2015
20
23 mars 2011 à 11:07
23 mars 2011 à 11:07
Mais de rien,
Marque ton sujet comme résolu ;)
Marque ton sujet comme résolu ;)