Création d'une connexion à la base de données

Création d'un objet PHP de connexion à la Base de données en utilisant la classe PDO

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;

Execution d'un requette SQL avec dbTools.php

        $result = $db->query('mon sql'); 
        //La méthode query renvoie un objet qui permet de traiter le résultats de la requette
        

Récupération des résultats de la requête :

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.

Parcourir les résultats de recherche

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;

Mémo des fonctions d'execution d'une requête SQL

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

Sécurisation de notre base de données