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
Dans votre projet, la connexion à votre base de données se réalise dans le fichier index.php situé à la racine du site.
Pour créer une connexion à la base de données il faut instancier l'objet "DbTools" livré avec votre projet.
Récupérer votre instance de classe dans une variable PHP (Ex : $bdd = new DbTools).
Votre objet $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.
Pour cela il faudra utiliser le mot clé "Global" suivit du nom de la variable contenant la connexion.
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