La classe PDO va vous permettre d’accéder et de communiquer directement et de façon uniforme à n’importe quelle base de données (MySQL, SQLite, PostgreSQL, Oracle…) en vous aidant de fonctionnalités avancées.
Voir la présentation de la class PDO ici : http://www.nicolas-verhoye.com/php-initiation-classe-pdo.html
Lien vers la documentation de la classe PDO : https://www.php.net/manual/fr/class.pdo.php
Voir la vidéo d'explication https://www.youtube.com/watch?v=Rh7mXaZl1oc
Pour vous connecter à la base de données avec PHP, vous devez récupérer le fichier zip qui contient la classe PHP DbTools : DbTools.zip
Copiez la classe DbTools.php sur votre serveur web dans le dossier de votre projet PHP.
Pour utiliser votre classe de connexion DbToole.php, vous devez l'inclure dans le fichier PHP qui aura besoin d'une connexion à la base de données.
L'instruction suivante vous permet d'inclure un fichier dans votre code PHP et d'avoir accès à l'ensemble des fonctions et variables publiques.
<?php require('DbTools.php'); ?>
Pour créer une connexion à la base de données il faut instancier l'objet "DbTools" livré avec votre projet.
<?php $bdd = new DbTools; ?>
Votre instance de classe est contenue dans la variable PHP $bdd
.$bdd
contenant la connexion à la BDD ayant été créé dans le fichier "index.php"
et donc en dehors d'une fonction ou méthode de classe (hors contexte), il faudra être capable de la récupérer n'importe où ensuite dans votre code PHP.Global $bdd;
$result = $db->query('mon sql');
//La méthode query renvoie un objet qui permet de traiter le résultats de la requette
Pour récupérer les tuples (résultats d'une requête SQL) il faut executer une/des méthode(s) contenu dans l'objet '$result'.
$monResultat = $result->fetch(); //Récupére la premiere ligne de resultats et passe à la ligne suivante.
$mesResultat = $result->fetchAll(); //Renvoie un tableau associatif contenant toutes les lignes de resultats de la requête.
$mesResultat = $result->fetchAll(PDO::FETCH_CLASS); //Renvoie un tableau d'objets contenant toutes les lignes de resultats de la requête.
La fonction $result->fetchAll(PDO::FETCH_CLASS)
est très pratique car elle va vous renvoyer un tableau dont chaque colonne va contenir des objets dont les propriétés (variables) portent le nom de vos colonnes de tables MySql.
Pour parcourir l'ensemble du résultat, il ne vous reste plus qu'à faire une boucle foreach() en PHP.
Exemple :
$sql = 'SELECT * FROM article';
$resultSet = $Db->query($sql);
$mesArticles = $resultSet->fetchAll(PDO::FETCH_CLASS);
foreach ($mesArticles as $article):
echo $article->articleTitre;
endforeach;
Pour connaitre toutes les méthode de la classe renvoyée par $bd->query()
et pouvoir exploiter les résultats d'execution d'une requette MySql c'est par ici :
https://www.php.net/manual/fr/class.pdostatement.php