Connexion
S'inscrire
Actualités
Quoi de neuf
Activités générales
Auteurs
Forums
Nouveaux messages
Rechercher un forum
Quoi de neuf
Nouveaux messages
Nouveaux messages de profil
Activités générales
Membres
Membres inscrits
Visiteurs actuels
Nouveaux messages de profil
Rechercher dans les messages des profils
Teams
Créé ton équipe
Quoi de neuf ?
Nouveaux messages
Rechercher un forum
Menu
Connexion
S'inscrire
Install the app
Install
Forums
Forums généraux
Informatique
Développement
[TUTORIEL] Class Database (connexion/requête/requête_préparée)
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
Vous utilisez un navigateur non à jour ou ancien. Il ne peut pas afficher ce site ou d'autres sites correctement.
Vous devez le mettre à jour ou utiliser un
navigateur alternatif
.
Répondre à la discussion
Message
<blockquote data-quote="Westiix" data-source="post: 6540486" data-attributes="member: 6708"><p style="text-align: center"><strong><span style="font-family: 'Roboto'">Bonjours tout le monde,</span></strong></p><p></p><p style="text-align: center"><span style="font-family: 'Roboto'">Dans ce bref tutoriel je vais vous montré une façon simple & classe pour vous connecté à votre BDD (Base De Donnée MySQL).</span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><strong>Éditeur utilisé : </strong>Sublime Text 3</span></p> <p style="text-align: center"><span style="font-family: 'Roboto'">======================================================</span></p> <p style="text-align: center"><u><strong><span style="font-size: 26px">TUTO VIDEO</span></strong></u></p> <p style="text-align: center">[MEDIA=youtube]YvCx8pWvU7s[/MEDIA]</p> <p style="text-align: center"></p> <p style="text-align: center"><strong><span style="font-size: 15px">Lien : <a href="https://www.youtube.com/watch?v=YvCx8pWvU7s&feature=youtu.be" target="_blank">https://www.youtube.com/watch?v=YvCx8pWvU7s&feature=youtu.be</a></span></strong></p> <p style="text-align: center"><u><strong><span style="font-size: 26px"></span></strong></u></p> <p style="text-align: center"><u><strong><span style="font-size: 26px"></span></strong></u></p> <p style="text-align: center"><strong><span style="font-family: 'Roboto'"><span style="font-size: 26px"><u>SOMMAIRE | TUTO ECRIT</u></span></span></strong></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600">I) Création de la class</span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #00b300">II) Utilisé la class</span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #00b300"></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 22px"><span style="color: #006600"></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 22px"><span style="color: #006600"><u>I) Création de la class</u></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 22px"><span style="color: #006600"></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600">On commence par crée notre fichier, pour ma part je l'appellerai "<strong>Database.php</strong>"</span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600"></span></span></span></p> <p style="text-align: center"><span style="color: #006600"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><strong>On ouvre PHP dans notre fichier fraîchement crée :</strong></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600"><img src="http://img.prntscr.com/img?url=http://i.imgur.com/FEdF1ey.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </span></span></span></p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">[/PHP]</p> <p style="text-align: center"><span style="font-family: 'Roboto'"></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600"><strong>On crée la class <u>Database</u> </strong>(comme le nom du fichier)<strong>:</strong></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600"><img src="http://img.prntscr.com/img?url=http://i.imgur.com/IGyx15A.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </span></span></span></p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">class Database{</p> <p style="text-align: left"></p> <p style="text-align: left">}[/PHP]</p><p><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600"></span></span></span></p><p><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600"><strong>On crée des variables privés </strong>(ces eux qui stockerons les identifiants de la base de donnée) :</span></span></span></p><p><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600"><img src="http://img.prntscr.com/img?url=http://i.imgur.com/xzohFTQ.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </span></span></span></p><p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">class Database{</p> <p style="text-align: left"></p> <p style="text-align: left"> /*</p> <p style="text-align: left"> $db_name = Nom de la base de donnée</p> <p style="text-align: left"> $db_user = Utilisateur de la base de donnée</p> <p style="text-align: left"> $db_mdp = Mot de passe de la base de donnée</p> <p style="text-align: left"> $db_host = HOST de la base de donnée</p> <p style="text-align: left"></p> <p style="text-align: left"> $pdo = stockera la connexion à la Base De Donnée</p> <p style="text-align: left"> */</p> <p style="text-align: left"> private $db_name;</p> <p style="text-align: left"> private $db_user;</p> <p style="text-align: left"> private $db_mdp;</p> <p style="text-align: left"> private $db_host;</p> <p style="text-align: left"> private $pdo;</p> <p style="text-align: left"></p> <p style="text-align: left">}[/PHP]</p> <p style="text-align: left"></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600"><strong>On crée le constructeur de la class :</strong></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600"><strong><img src="http://img.prntscr.com/img?url=http://i.imgur.com/A7V0Ygr.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </strong></span></span></span></p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">class Database{</p> <p style="text-align: left"></p> <p style="text-align: left"> /*</p> <p style="text-align: left"> $db_name = Nom de la base de donnée</p> <p style="text-align: left"> $db_user = Utilisateur de la base de donnée</p> <p style="text-align: left"> $db_mdp = Mot de passe de la base de donnée</p> <p style="text-align: left"> $db_host = HOST de la base de donnée</p> <p style="text-align: left"> */</p> <p style="text-align: left"> private $db_name;</p> <p style="text-align: left"> private $db_user;</p> <p style="text-align: left"> private $db_mdp;</p> <p style="text-align: left"> private $db_host;</p> <p style="text-align: left"> private $pdo;</p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"> /*</p> <p style="text-align: left"> Le champ $db_name = nom_bdd (Nom de la Base De Donnée)</p> <p style="text-align: left"> Le champ $db_user = 'root' par défault (si ont ne défini pas $db_user)</p> <p style="text-align: left"> Le champ $db_mdp = '' par défault (si ont ne défini pas $db_mdp)</p> <p style="text-align: left"> Le champ $db_host = 'localhost' par défault (si ont ne défini pas $db_host)</p> <p style="text-align: left"></p> <p style="text-align: left"> $this->db_name = private $db_name;</p> <p style="text-align: left"> $this->db_user = private $db_user;</p> <p style="text-align: left"> $this->db_mdp = private $db_mdp;</p> <p style="text-align: left"> $this->db_host = private $db_host;</p> <p style="text-align: left"></p> <p style="text-align: left"> On attribue les valeurs qui sont passé en paramètre à nos variables privées</p> <p style="text-align: left"> */</p> <p style="text-align: left"> public function __construct($db_name, $db_user = 'root', $db_mdp = '', $db_host = 'localhost'){</p> <p style="text-align: left"> $this->db_name = $db_name;</p> <p style="text-align: left"> $this->db_user = $db_user;</p> <p style="text-align: left"> $this->db_mdp = $db_mdp;</p> <p style="text-align: left"> $this->db_host = $db_host;</p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left">}[/PHP]</p> <p style="text-align: left"></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="color: #006600"><span style="font-size: 18px"><strong>Maintenant on va crée une fonction privée qui se chargera de récupérer PDO tout seul :</strong></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="color: #006600"><span style="font-size: 18px"><strong><img src="http://img.prntscr.com/img?url=http://i.imgur.com/hXCQI9M.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </strong></span></span></span></p> <p style="text-align: left">[PHP]</p> <p style="text-align: left"> /*</p> <p style="text-align: left"> Explication de la fonction "getPDO()" :</p> <p style="text-align: left"></p> <p style="text-align: left"> SI $this->pdo (private $pdo) = null (si il a aucune valeur) ALORS</p> <p style="text-align: left"> On crée une instance de PDO avec comme host = $this->db_host (private $db_host) ; dbname = $this->db_name (private $db_name) ; user = $this->db_user (private $db_user), mdp = $this->db_mdp (private $db_mdp)</p> <p style="text-align: left"></p> <p style="text-align: left"> Ont remplit $this->pdo (private $pdo) par l'instance PDO que l'on vient de crée</p> <p style="text-align: left"> Et on retourne $this->pdo (où ont a stocké l'instance de PDO)</p> <p style="text-align: left"> */</p> <p style="text-align: left"> private function getPDO(){</p> <p style="text-align: left"> if($this->pdo == null){</p> <p style="text-align: left"> $pdo = new PDO('mysql:host='.$this->db_host.';dbname='.$this->db_name, $this->db_user, $this->db_mdp);</p> <p style="text-align: left"> $this->pdo = $pdo;</p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left"> return $this->pdo;</p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left">}[/PHP]</p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><strong>Désormais, il nous reste plus à crée la fonction pour effectuer des requêtes :</strong></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="color: #006600"><span style="font-size: 18px"><strong><img src="http://img.prntscr.com/img?url=http://i.imgur.com/hkyqUZr.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </strong></span></span></span></p> <p style="text-align: left">[PHP] /*</p> <p style="text-align: left"></p> <p style="text-align: left"> Explication de la fonction "query($requete)" :</p> <p style="text-align: left"></p> <p style="text-align: left"> SI $args = pleins ALORS</p> <p style="text-align: left"> on effectue une requete préparée avec les arguments du tableau $args</p> <p style="text-align: left"> SINON</p> <p style="text-align: left"> on effectue une simple requete</p> <p style="text-align: left"></p> <p style="text-align: left"> On retourne l'instance de la requête($req)</p> <p style="text-align: left"></p> <p style="text-align: left"> */</p> <p style="text-align: left"> public function query($requete, $args = array(null)){</p> <p style="text-align: left"> if(!empty($args)){</p> <p style="text-align: left"> $req = $this->getPDO()->prepare($requete);</p> <p style="text-align: left"> $req->execute($args);</p> <p style="text-align: left"> } else {</p> <p style="text-align: left"> $req = $this->getPDO()->query($requete);</p> <p style="text-align: left"> }</p> <p style="text-align: left"> </p> <p style="text-align: left"> return $req;</p> <p style="text-align: left"> }[/PHP]</p> <p style="text-align: left"></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600"><strong><u>CODE FINAL :</u></strong></span></span></span></p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">class Database{</p> <p style="text-align: left"></p> <p style="text-align: left"> /*</p> <p style="text-align: left"> $db_name = Nom de la base de donnée</p> <p style="text-align: left"> $db_user = Utilisateur de la base de donnée</p> <p style="text-align: left"> $db_mdp = Mot de passe de la base de donnée</p> <p style="text-align: left"> $db_host = HOST de la base de donnée</p> <p style="text-align: left"> */</p> <p style="text-align: left"> private $db_name;</p> <p style="text-align: left"> private $db_user;</p> <p style="text-align: left"> private $db_mdp;</p> <p style="text-align: left"> private $db_host;</p> <p style="text-align: left"> private $pdo;</p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"> /*</p> <p style="text-align: left"> Explication du constructeur :</p> <p style="text-align: left"></p> <p style="text-align: left"> Le champ $db_name = nom_bdd (Nom de la Base De Donnée)</p> <p style="text-align: left"> Le champ $db_user = 'root' par défault (si ont ne défini pas $db_user)</p> <p style="text-align: left"> Le champ $db_mdp = '' par défault (si ont ne défini pas $db_mdp)</p> <p style="text-align: left"> Le champ $db_host = 'localhost' par défault (si ont ne défini pas $db_host)</p> <p style="text-align: left"></p> <p style="text-align: left"> $this->db_name = private $db_name;</p> <p style="text-align: left"> $this->db_user = private $db_user;</p> <p style="text-align: left"> $this->db_mdp = private $db_mdp;</p> <p style="text-align: left"> $this->db_host = private $db_host;</p> <p style="text-align: left"></p> <p style="text-align: left"> On attribue les valeurs qui sont passé en paramètre à nos variables privées</p> <p style="text-align: left"> */</p> <p style="text-align: left"> public function __construct($db_name, $db_user = 'root', $db_mdp = '', $db_host = 'localhost'){</p> <p style="text-align: left"> $this->db_name = $db_name;</p> <p style="text-align: left"> $this->db_user = $db_user;</p> <p style="text-align: left"> $this->db_mdp = $db_mdp;</p> <p style="text-align: left"> $this->db_host = $db_host;</p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left"></p> <p style="text-align: left"> /*</p> <p style="text-align: left"> Explication de la fonction "getPDO()" :</p> <p style="text-align: left"></p> <p style="text-align: left"> SI $this->pdo (private $pdo) = null (si il a aucune valeur) ALORS</p> <p style="text-align: left"> On crée une instance de PDO avec comme host = $this->db_host (private $db_host) ; dbname = $this->db_name (private $db_name) ; user = $this->db_user (private $db_user), mdp = $this->db_mdp (private $db_mdp)</p> <p style="text-align: left"></p> <p style="text-align: left"> Ont remplit $this->pdo (private $pdo) par l'instance PDO que l'on vient de crée</p> <p style="text-align: left"> Et on retourne $this->pdo (où ont a stocké l'instance de PDO)</p> <p style="text-align: left"> */</p> <p style="text-align: left"> private function getPDO(){</p> <p style="text-align: left"> if($this->pdo == null){</p> <p style="text-align: left"> $pdo = new PDO('mysql:host='.$this->db_host.';dbname='.$this->db_name, $this->db_user, $this->db_mdp);</p> <p style="text-align: left"> $this->pdo = $pdo;</p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left"> return $this->pdo;</p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left"> /*</p> <p style="text-align: left"> Explication de la fonction "query($requete)" :</p> <p style="text-align: left"></p> <p style="text-align: left"> SI $args = pleins ALORS</p> <p style="text-align: left"> on effectue une requete préparée avec les arguments du tableau $args</p> <p style="text-align: left"> SINON</p> <p style="text-align: left"> on effectue une simple requete</p> <p style="text-align: left"></p> <p style="text-align: left"> */</p> <p style="text-align: left"> public function query($requete, $args = array(null)){</p> <p style="text-align: left"> if(!empty($args)){</p> <p style="text-align: left"> $req = $this->getPDO()->prepare($requete);</p> <p style="text-align: left"> $req->execute($args);</p> <p style="text-align: left"> } else {</p> <p style="text-align: left"> $req = $this->getPDO()->query($requete);</p> <p style="text-align: left"> }</p> <p style="text-align: left"> </p> <p style="text-align: left"> return $req;</p> <p style="text-align: left"> }</p> <p style="text-align: left"></p> <p style="text-align: left">}[/PHP]</p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600"></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #006600"></span></span></span></p> <p style="text-align: left"></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 22px"><span style="color: #00b300"><strong><u>II) Utilisé la class</u></strong></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #00b300"></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #00b300"><strong>On crée un fichier "index.php"</strong></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #00b300"><strong>On ouvre PHP :</strong></span></span></span></p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">[/PHP]</p> <p style="text-align: left"></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #00b300"><strong>Maintenant on appelle notre class :</strong></span></span></span></p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">require 'Database.php';[/PHP]</p> <p style="text-align: left"></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="font-size: 18px"><span style="color: #00b300"><strong>On instancie la class :</strong></span></span></span></p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">require 'Database.php';</p> <p style="text-align: left">$pdo = new Database('dbname');</p> <p style="text-align: left">[/PHP]</p> <p style="text-align: left"></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="color: #00b300"><strong><span style="font-size: 18px">On fait une requete pour testé :</span></strong></span></span></p> <p style="text-align: left">[PHP]<?php</p> <p style="text-align: left"></p> <p style="text-align: left">require 'Database.php';</p> <p style="text-align: left">$pdo = new Database('dbname');</p> <p style="text-align: left"></p> <p style="text-align: left">$requete = $pdo->query('SELECT * from users WHERE pseudo = ? AND email = ?', ['Westiix', 'test@test.fr']);</p> <p style="text-align: left">$infosMembre = $requete->fetch();</p> <p style="text-align: left"></p> <p style="text-align: left">var_dump($infosMembre);[/PHP]</p> <p style="text-align: left"></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="color: #00b300"><span style="font-size: 18px"><strong>Et voilà, on a un système assez "claire" pour se connecté à notre base de donnée & effectuer des requetes simple ou préparé</strong></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><span style="color: #00b300"><span style="font-size: 18px"></span></span></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'">==================================</span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'">Tutoriel terminé, j'espère que sa vous aidera <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite355" alt=":)" title=":) :)" loading="lazy" data-shortname=":)" /></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><em>PS: Vous pouvez charger la class dans un fichier "core.php", y effectuer la connexion à la base de donnée et faire un "require" de "core.php" sur les pages où vous avez besoin.</em></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"></span></p> <p style="text-align: center"><span style="font-family: 'Roboto'"><em>PS2: La class est ré-utilisable pour n'importe le quel de vos projets</em></span></p><p></p><p style="text-align: left"></p><p></p><p style="text-align: left"></p></blockquote><p></p>
[QUOTE="Westiix, post: 6540486, member: 6708"] [CENTER][B][FONT=Roboto]Bonjours tout le monde,[/FONT][/B][/CENTER] [CENTER][FONT=Roboto]Dans ce bref tutoriel je vais vous montré une façon simple & classe pour vous connecté à votre BDD (Base De Donnée MySQL). [B]Éditeur utilisé : [/B]Sublime Text 3 ======================================================[/FONT] [U][B][SIZE=7]TUTO VIDEO[/SIZE][/B][/U] [MEDIA=youtube]YvCx8pWvU7s[/MEDIA] [B][SIZE=4]Lien : [URL]https://www.youtube.com/watch?v=YvCx8pWvU7s&feature=youtu.be[/URL][/SIZE][/B] [U][B][SIZE=7] [/SIZE][/B][/U] [B][FONT=Roboto][SIZE=7][U]SOMMAIRE | TUTO ECRIT[/U][/SIZE][/FONT][/B] [FONT=Roboto][SIZE=5][COLOR=#006600]I) Création de la class[/COLOR] [COLOR=#00b300]II) Utilisé la class [/COLOR][/SIZE] [SIZE=6][COLOR=#006600] [U]I) Création de la class[/U] [/COLOR][/SIZE] [SIZE=5][COLOR=#006600]On commence par crée notre fichier, pour ma part je l'appellerai "[B]Database.php[/B]" [/COLOR][/SIZE][/FONT] [COLOR=#006600][FONT=Roboto][SIZE=5][B]On ouvre PHP dans notre fichier fraîchement crée :[/B][/SIZE][/FONT][/COLOR] [FONT=Roboto][SIZE=5][COLOR=#006600][IMG]http://img.prntscr.com/img?url=http://i.imgur.com/FEdF1ey.png[/IMG] [/COLOR][/SIZE][/FONT][/CENTER] [LEFT][PHP]<?php [/PHP][/LEFT] [CENTER][FONT=Roboto] [SIZE=5][COLOR=#006600][B]On crée la class [U]Database[/U] [/B](comme le nom du fichier)[B]:[/B] [IMG]http://img.prntscr.com/img?url=http://i.imgur.com/IGyx15A.png[/IMG] [/COLOR][/SIZE][/FONT][/CENTER] [LEFT][PHP]<?php class Database{ }[/PHP][/LEFT] [FONT=Roboto][SIZE=5][COLOR=#006600] [B]On crée des variables privés [/B](ces eux qui stockerons les identifiants de la base de donnée) : [IMG]http://img.prntscr.com/img?url=http://i.imgur.com/xzohFTQ.png[/IMG] [/COLOR][/SIZE][/FONT] [LEFT][PHP]<?php class Database{ /* $db_name = Nom de la base de donnée $db_user = Utilisateur de la base de donnée $db_mdp = Mot de passe de la base de donnée $db_host = HOST de la base de donnée $pdo = stockera la connexion à la Base De Donnée */ private $db_name; private $db_user; private $db_mdp; private $db_host; private $pdo; }[/PHP] [/LEFT] [CENTER][FONT=Roboto][SIZE=5][COLOR=#006600][B]On crée le constructeur de la class :[/B] [B][IMG]http://img.prntscr.com/img?url=http://i.imgur.com/A7V0Ygr.png[/IMG] [/B][/COLOR][/SIZE][/FONT][/CENTER] [LEFT][PHP]<?php class Database{ /* $db_name = Nom de la base de donnée $db_user = Utilisateur de la base de donnée $db_mdp = Mot de passe de la base de donnée $db_host = HOST de la base de donnée */ private $db_name; private $db_user; private $db_mdp; private $db_host; private $pdo; /* Le champ $db_name = nom_bdd (Nom de la Base De Donnée) Le champ $db_user = 'root' par défault (si ont ne défini pas $db_user) Le champ $db_mdp = '' par défault (si ont ne défini pas $db_mdp) Le champ $db_host = 'localhost' par défault (si ont ne défini pas $db_host) $this->db_name = private $db_name; $this->db_user = private $db_user; $this->db_mdp = private $db_mdp; $this->db_host = private $db_host; On attribue les valeurs qui sont passé en paramètre à nos variables privées */ public function __construct($db_name, $db_user = 'root', $db_mdp = '', $db_host = 'localhost'){ $this->db_name = $db_name; $this->db_user = $db_user; $this->db_mdp = $db_mdp; $this->db_host = $db_host; } }[/PHP] [/LEFT] [CENTER][FONT=Roboto][COLOR=#006600][SIZE=5][B]Maintenant on va crée une fonction privée qui se chargera de récupérer PDO tout seul :[/B] [B][IMG]http://img.prntscr.com/img?url=http://i.imgur.com/hXCQI9M.png[/IMG] [/B][/SIZE][/COLOR][/FONT][/CENTER] [LEFT][PHP] /* Explication de la fonction "getPDO()" : SI $this->pdo (private $pdo) = null (si il a aucune valeur) ALORS On crée une instance de PDO avec comme host = $this->db_host (private $db_host) ; dbname = $this->db_name (private $db_name) ; user = $this->db_user (private $db_user), mdp = $this->db_mdp (private $db_mdp) Ont remplit $this->pdo (private $pdo) par l'instance PDO que l'on vient de crée Et on retourne $this->pdo (où ont a stocké l'instance de PDO) */ private function getPDO(){ if($this->pdo == null){ $pdo = new PDO('mysql:host='.$this->db_host.';dbname='.$this->db_name, $this->db_user, $this->db_mdp); $this->pdo = $pdo; } return $this->pdo; } }[/PHP][/LEFT] [CENTER][FONT=Roboto][SIZE=5][B]Désormais, il nous reste plus à crée la fonction pour effectuer des requêtes :[/B][/SIZE] [COLOR=#006600][SIZE=5][B][IMG]http://img.prntscr.com/img?url=http://i.imgur.com/hkyqUZr.png[/IMG] [/B][/SIZE][/COLOR][/FONT][/CENTER] [LEFT][PHP] /* Explication de la fonction "query($requete)" : SI $args = pleins ALORS on effectue une requete préparée avec les arguments du tableau $args SINON on effectue une simple requete On retourne l'instance de la requête($req) */ public function query($requete, $args = array(null)){ if(!empty($args)){ $req = $this->getPDO()->prepare($requete); $req->execute($args); } else { $req = $this->getPDO()->query($requete); } return $req; }[/PHP] [/LEFT] [CENTER][FONT=Roboto][SIZE=5][COLOR=#006600][B][U]CODE FINAL :[/U][/B][/COLOR][/SIZE][/FONT][/CENTER] [LEFT][PHP]<?php class Database{ /* $db_name = Nom de la base de donnée $db_user = Utilisateur de la base de donnée $db_mdp = Mot de passe de la base de donnée $db_host = HOST de la base de donnée */ private $db_name; private $db_user; private $db_mdp; private $db_host; private $pdo; /* Explication du constructeur : Le champ $db_name = nom_bdd (Nom de la Base De Donnée) Le champ $db_user = 'root' par défault (si ont ne défini pas $db_user) Le champ $db_mdp = '' par défault (si ont ne défini pas $db_mdp) Le champ $db_host = 'localhost' par défault (si ont ne défini pas $db_host) $this->db_name = private $db_name; $this->db_user = private $db_user; $this->db_mdp = private $db_mdp; $this->db_host = private $db_host; On attribue les valeurs qui sont passé en paramètre à nos variables privées */ public function __construct($db_name, $db_user = 'root', $db_mdp = '', $db_host = 'localhost'){ $this->db_name = $db_name; $this->db_user = $db_user; $this->db_mdp = $db_mdp; $this->db_host = $db_host; } /* Explication de la fonction "getPDO()" : SI $this->pdo (private $pdo) = null (si il a aucune valeur) ALORS On crée une instance de PDO avec comme host = $this->db_host (private $db_host) ; dbname = $this->db_name (private $db_name) ; user = $this->db_user (private $db_user), mdp = $this->db_mdp (private $db_mdp) Ont remplit $this->pdo (private $pdo) par l'instance PDO que l'on vient de crée Et on retourne $this->pdo (où ont a stocké l'instance de PDO) */ private function getPDO(){ if($this->pdo == null){ $pdo = new PDO('mysql:host='.$this->db_host.';dbname='.$this->db_name, $this->db_user, $this->db_mdp); $this->pdo = $pdo; } return $this->pdo; } /* Explication de la fonction "query($requete)" : SI $args = pleins ALORS on effectue une requete préparée avec les arguments du tableau $args SINON on effectue une simple requete */ public function query($requete, $args = array(null)){ if(!empty($args)){ $req = $this->getPDO()->prepare($requete); $req->execute($args); } else { $req = $this->getPDO()->query($requete); } return $req; } }[/PHP][/LEFT] [CENTER][FONT=Roboto][SIZE=5][COLOR=#006600] [/COLOR][/SIZE][/FONT][/CENTER] [LEFT][/LEFT] [CENTER][FONT=Roboto][SIZE=6][COLOR=#00b300][B][U]II) Utilisé la class[/U][/B][/COLOR][/SIZE] [SIZE=5][COLOR=#00b300] [B]On crée un fichier "index.php"[/B] [B]On ouvre PHP :[/B][/COLOR][/SIZE][/FONT][/CENTER] [LEFT][PHP]<?php [/PHP] [/LEFT] [CENTER][FONT=Roboto][SIZE=5][COLOR=#00b300][B]Maintenant on appelle notre class :[/B][/COLOR][/SIZE][/FONT][/CENTER] [LEFT][PHP]<?php require 'Database.php';[/PHP] [/LEFT] [CENTER][FONT=Roboto][SIZE=5][COLOR=#00b300][B]On instancie la class :[/B][/COLOR][/SIZE][/FONT][/CENTER] [LEFT][PHP]<?php require 'Database.php'; $pdo = new Database('dbname'); [/PHP] [/LEFT] [CENTER][FONT=Roboto][COLOR=#00b300][B][SIZE=5]On fait une requete pour testé :[/SIZE][/B][/COLOR][/FONT][/CENTER] [LEFT][PHP]<?php require 'Database.php'; $pdo = new Database('dbname'); $requete = $pdo->query('SELECT * from users WHERE pseudo = ? AND email = ?', ['Westiix', 'test@test.fr']); $infosMembre = $requete->fetch(); var_dump($infosMembre);[/PHP] [/LEFT] [CENTER][FONT=Roboto][COLOR=#00b300][SIZE=5][B]Et voilà, on a un système assez "claire" pour se connecté à notre base de donnée & effectuer des requetes simple ou préparé[/B] [/SIZE][/COLOR] ================================== Tutoriel terminé, j'espère que sa vous aidera :) [I]PS: Vous pouvez charger la class dans un fichier "core.php", y effectuer la connexion à la base de donnée et faire un "require" de "core.php" sur les pages où vous avez besoin.[/I] [I]PS2: La class est ré-utilisable pour n'importe le quel de vos projets[/I][/FONT][/CENTER] [LEFT][/LEFT] [LEFT][/LEFT] [/QUOTE]
Insérer les citations…
Vérification
Publier la réponse
Forums
Forums généraux
Informatique
Développement
[TUTORIEL] Class Database (connexion/requête/requête_préparée)
Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
Acceptez
En savoir plus.…
Haut