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

Récupération de l'objet de connexion à la base de données

Télécharger le fichier zip de la classe PHP

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'); ?>

Création de votre connexion à la BDD

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.
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