Bonjours tout le monde,
Dans ce bref tutoriel je vais vous montré une façon simple & classe pour vous connecté à votre BDD (Base De Donnée MySQL).
Éditeur utilisé : Sublime Text 3
======================================================
TUTO VIDEO
Lien :
SOMMAIRE | TUTO ECRIT
I) Création de la class
II) Utilisé la class
I) Création de la class
On commence par crée notre fichier, pour ma part je l'appellerai "Database.php"
On ouvre PHP dans notre fichier fraîchement crée :
Éditeur utilisé : Sublime Text 3
======================================================
TUTO VIDEO
Vous devez être inscrit pour voir les médias
Lien :
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
SOMMAIRE | TUTO ECRIT
I) Création de la class
II) Utilisé la class
I) Création de la class
On commence par crée notre fichier, pour ma part je l'appellerai "Database.php"
On ouvre PHP dans notre fichier fraîchement crée :

PHP:
<?php
On crée la class Database (comme le nom du fichier):

PHP:
<?php
class Database{
}
On crée des variables privés (ces eux qui stockerons les identifiants de la base de donnée) :

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;
}
On crée le constructeur de la class :

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;
}
}
Maintenant on va crée une fonction privée qui se chargera de récupérer PDO tout seul :

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;
}
}
Désormais, il nous reste plus à crée la fonction pour effectuer des requêtes :

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;
}
CODE FINAL :
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;
}
}
II) Utilisé la class
On crée un fichier "index.php"
On ouvre PHP :
On crée un fichier "index.php"
On ouvre PHP :
PHP:
<?php
Maintenant on appelle notre class :
PHP:
<?php
require 'Database.php';
On instancie la class :
PHP:
<?php
require 'Database.php';
$pdo = new Database('dbname');
On fait une requete pour testé :
PHP:
<?php
require 'Database.php';
$pdo = new Database('dbname');
$requete = $pdo->query('SELECT * from users WHERE pseudo = ? AND email = ?', ['Westiix', '[email protected]']);
$infosMembre = $requete->fetch();
var_dump($infosMembre);
Et voilà, on a un système assez "claire" pour se connecté à notre base de donnée & effectuer des requetes simple ou préparé
==================================
Tutoriel terminé, j'espère que sa vous aidera
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.
PS2: La class est ré-utilisable pour n'importe le quel de vos projets
==================================
Tutoriel terminé, j'espère que sa vous aidera
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.
PS2: La class est ré-utilisable pour n'importe le quel de vos projets
Dernière édition: