Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Utiliser PDO avec PHP

Par Yohann JOURDAIN Publié le 22/01/2018 à 11:42:18 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

Lors de cet article, nous allons voir comment utiliser PDO avec PHP. L’objectif sera d’apprendre comment insérer, sélectionner, mettre à jour et supprimer des données dans une base de données par des formulaires et des actions utilisateurs.

Au cours de cet article nous utiliserons l’éditeur PHPStorm et d’une application de gestion de bases de données comme PHPMyAdmin.

Avant de poursuivre, nous allons revoir la signification de certains termes dont nous allons avoir besoin durant cet article :

  • PHP : De sa signification « Hypertext Preprocessor » est un langage de programmation qui permet de créer des applications ou des sites web et de traiter des données sur cette application.

  • PDO : De sa signification « PHP Data Object » est une interface dont l’objectif est d’accéder à une base de données et ainsi accéder à son contenu.

  • PHPMyAdmin : Application sur laquelle sera créée notre base de données.

Connexion à la base de données en PHP

Grâce au langage PHP, nous pouvons manipuler des données insérées dans une base de données. L’objectif est de pouvoir effectuer des actions sur ces données depuis une application web gérée et consultée par des utilisateurs via un formulaire (pour l’ajout ou la modification de données par exemple), de liste à travers de tableaux (dans le but de consulter les données) .

Création de la base de données avec PHPMyAdmin

Dans un premier temps, dans l’application PHPMyAdmin, nous allons créer notre table « member » qui va stocker nos données durant la suite de cet article. Le but étant de créer une base de données permettant de gérer différents membres d’une association par exemple.

Pour cela nous allons créer 5 champs qui sont les suivants :

  • Un champ « id » de type « int » qui sera auto-incrémenté lors de l’insertion d’une donnée.

  • Un champ « lastname » de type « varchar » de taille 255 qui contiendra le nom de notre membre.

  • Un champ « firstname » de type « varchar » de taille 255 qui contiendra le prénom de notre membre.

  • Un champ « email » de type « varchar » de taille 255 qui contiendra l’e-mail de notre membre.

  • Un champ « city » de type « varchar » de taille 255 qui contiendra la ville de notre membre.

Comment se connecter à la base de données ?

Comme dis précédemment, grâce au langage PHP, l’outil PDO permet de nous connecter à de nombreuses bases de données. Pour réussir à se connecter, nous avons besoins de plusieurs éléments :

  • Le nom de l'hôte : Il correspond à l’adresse de l’ordinateur ou du serveur où l’application web est installée. Si vous êtes en local (sur votre pc) la valeur est souvent « localhost ». Cependant, il peut contenir aussi une adresse IP.

  • Le nom de la base de données : C’est le nom correspondant à la base de données qui va contenir nos tables.

  • Le login permettant d'accéder à la base : C’est l’identifiant qui va vous permettre de vous connecter à votre base afin de pouvoir la gérer en créant des tables, des colonnes...

  • Le mot de passe de la base : C’est le mot de passe qui permet l’accès à la base.

Pour notre exemple, nous avons créé une classe « database » qui va contenir notre variable « host » qui correspond au nom de l’hôte et à de la base de données. On peut aussi y ajouter un port si on a changé celui par défaut qui est le 3306. Une variable « username » qui est le login et une variable « password ». Dans notre exemple ci-dessus, nous pouvons voir que notre base de données se nomme « pdo » qui a comme login « root » et sans mot de passe. Enfin, une variable « bdd » avec laquelle on va pouvoir nous connecter à notre base.

Nous devons créer également nos « getter » et nos « setter » pour nos variables.

Pour rappel, les « getters » (ou accesseurs en français) vont nous permettre de récupérer la valeur assignée à la variable, tandis que les « setters » (ou mutateur en français) vont permettre de modifier la valeur de la variable.

Dans notre même classe, nous allons implémenter une méthode « connexion », qui va nous permettre de nous connecter à notre base de données. Pour cela, on va utiliser un « try … catch … ». Lorsqu’on va appeler notre fonction, on va tout d’abord tenter de se connecter avec nos identifiants grâce au « try ». Si on n’arrive pas à s’y connecter, alors la partie « catch » va nous afficher une erreur. Dans la première partie, nous allons faire appel au « setter » de la variable « bdd », que l’on a créé au début de notre classe. On lui passe ensuite un paramètre, l’outil PDO qui va contenir le nom de l’hôte, le login et le mot de passe de notre base. Ces derniers seront récupérés par nos « getters ».

Insertion des données en PHP

Dans cette deuxième partie, nous allons apprendre comment utiliser PDO pour insérer des données grâce à un formulaire.

HTML - Création du formulaire

Pour notre exemple, nous allons créer un formulaire ayant comme action notre fichier « insert.php » situé dans notre dossier « member » et la méthode « post » qui permet de ne pas rendre visible les données à l’utilisateur par l’URL par exemple.

On va lui ajouter 5 champs :

  • Un champ « Nom » de type « text » et comme nom « lastname ».

  • Un champ « Prénom » de type « text » et comme nom « firstname ».

  • Un champ « E-mail » de type « text » et comme nom « email ».

  • Un champ « Ville » de type « text » et comme nom « city ».

  • Un champ « Insérer » de type « submit » et comme nom « form_insert ».

Traitement PHP

Dans notre classe « database », on va ajouter une méthode (ici « addMember ») qui va retourner une requête SQL, afin de nous permettre d’insérer des données.

Explication de la requête :

  • On va insérer dans la table « member » toutes les valeurs « lastname », « firstname », « email » et « city » dont les valeurs seront données via le formulaire.

Dans le fichier « index.php » :

La première étape pour insérer des données dans notre base est d’appeler notre fichier qui va contenir les éléments de connexion. Pour cela, on va utiliser la méthode « require_once <chemin_du_fichier> ».

Ensuite, on va créer notre méthode (ici « insertMember »). On doit se connecter à notre base de données, pour cela, on va appeler la méthode « connexion » de notre classe « database ».

On va récupérer nos données dans des variables grâce à « $_POST[<nom_du_champ>] ». Dans notre variable « $query » on appel notre variable « $bdd », grâce à son « getter » puis on prépare notre requête, en passant en paramètre la méthode « addMember », qui est notre requête SQL créée dans la classe « database ».

Pour terminer, on crée un tableau dans lequel on va assigner les valeurs à insérer pour chaque champs de notre base, par la syntaxe : « champ_base_de_données » => « valeur_du_formulaire ». Enfin, on exécute notre requête.

Pour appeler notre fonction, lors d’une action sur le formulaire, on doit vérifier si notre bouton « Insérer » a bien été actionné, en renvoyant une valeur booléenne, grâce à la méthode « isset ». Une fois exécutée, on redirige l’utilisateur vers la page « index.php ».

Résultat

Table 1. 


Sélection des données en PHP

Dans ce troisième chapitre, nous allons étudier comment sélectionner des données présentent dans notre base avec et sans conditions.

Afficher les données

Dans notre classe « database », on va ajouter une fonction (ici « selectAllMember ») qui va nous permettre de sélectionner des données.

Explication de la requête :

  • On sélectionne tous les champs de la table « member ».

Dans le fichier « liste.php » :

Ensuite, dans notre fichier principal, on va tout d’abord avoir besoin de notre classe « database » que l’on va appeler par la méthode PHP « require_once ». Puis, on va inclure le fichier PHP ou sera traiter notre requête (ici « select.php »). Enfin, on va faire appel à notre fonction « listAllMember » qui se trouve dans notre fichier que nous avons inclus.

Dans le fichier « select.php » :

Dans notre fichier, nous allons créer la fonction « listAllMember » qui va dans un premier temps ce connecter à la base de données grâce à la classe « database ». Puis, on exécute la requête par la méthode « query ». Enfin, on crée une table avec les balises HTML dans laquelle on va afficher nos données. Elle aura pour en-tête : « Id », « Nom », « Prénom », « E-mail » et « Ville ».

Pour terminer, on va parcourir notre base de données tant qu’il y a un résultat pour l’afficher. Les liens « Modifier » et « Supprimer » seront utilisés dans les parties suivantes. Ne pas oublier de fermer la requête par le « closeCursor ».

Mise à jour des données en PHP

Dans cette nouvelle partie, on va apprendre comment modifier des données par le biais d’un formulaire.

Préparation du formulaire

Dans un premier temps on va ajouter une fonction « selectMemberId » dans la classe « database ».

Explication de la requête :

  • On sélectionne toutes les données de la table « member » dont le champ « id » est celui donné.

Dans notre fichier « edit.php » :

Dans le même principe que pour le fichier précédent « liste.php », on va tout d’abord appeler notre classe « database » par le « require_once », puis on va inclure le fichier « form_update.php » qui va contenir la méthode « displayInfoMember ».

Dans notre fichier « form_update.php » :

Dans la fonction « displayMemberId », on va se connecter à la base de données dans un premier temps, grâce à la classe « database ». On va récupérer l’id par la méthode « $_GET » dont le paramètre se trouve dans l’URL de la page :

On prépare ensuite la requête avec l’id récupéré dans l’URL et on exécute la requête.

On vérifie s’il y a une donnée de trouvée, si c’est le cas, on affiche un formulaire ayant pour action le fichier « update.php » avec comme paramètre l’id de la donnée à modifier et en méthode « post ».

Pour notre exemple, on reprend le même type de formulaire que pour l’ajout d’un membre, à l’exception que maintenant ces champs auront comme valeur les données correspondant à l’id de l’URL. En revanche, si le paramètre de l’id n’est pas trouvé dans l’URL, alors on affiche un message à l’utilisateur. Pour terminer, on ferme la requête.

Table 2. 


Traitement PHP

Dans notre classe « database », on va ajouter une fonction (ici « updateMemberId ») qui va nous permettre de sélectionner des données.

Explication de la requête :

  • On met à jour la table « member » avec les champs « lastname », « firstname », « email », « city » envoyés par le formulaire dont l’id correspond.

Dans le fichier « update.php » :

Pour commencer, on appel le fichier contenant les informations de connexion à notre base de données. Ensuite, dans la fonction « updateInfoMember » on se connecte à la base, puis on récupère nos différentes informations par la méthode « $_POST » et notre « Id » en paramètre.

On prépare la requête avec nos différentes données, afin de l’exécuter et ne pas oublier de fermer la requête.

Lors de la soumission du formulaire, on va vérifier par sécurité si le formulaire a bien été soumis. Si c’est le cas on exécute la fonction et l’utilisateur est redirigé vers notre fichier « liste.php ».

Suppression des données en PHP

Dans cette dernière partie, nous allons voir comment supprimer une donnée avec le langage PHP.

Toujours dans notre classe « database », nous devons ajouter une fonction « deleteMemberId » qui retournera une requête SQL.

Explication de la requête :

  • On va supprimer la ligne dans la table « member » où l’id correspond à celui donné en paramètre.

Dans le fichier « delete.php » :

Dans ce fichier, on va comme d’habitude appeler notre fichier qui contient nos informations de connexion. Dans la fonction « deleteMember » on se connecte à la base et on récupère l’id passé en paramètre de l’URL. On prépare la requête SQL avec le paramètre « id ». On exécute cette dernière et on ferme la requête. Pour terminer, l’utilisateur est directement redirigé vers la page « liste.php » où sont listés nos données.

Exemple avec le tableau du fichier « liste.php » rempli :

Suppression de la première donnée :

Tableau vide après suppression de toutes les données :

Conclusion

Comme nous avons pu le voir durant cet article, il est très facile de gérer les données avec l’outil PDO et le langage PHP. Nous pouvons avoir besoin de manipuler des données, lors de la création de différents site internet ou applications et ainsi manipuler des données diverses et variées. En effet, ici nous avons vu un aperçu de la manipulation des données.

Nous avons aussi survolé l’utilisation de l’application PHPMyAdmin, qui permet de créer des bases de données ainsi que de nombreuses tables personnalisées, dont le but premier est de stocker des données en local.

Nous avons pu voir qu’il est également important d’avoir des notions du langage SQL (Structured Query Language) afin d’améliorer et de comprendre l’intégration des données dans vos futurs développements. A travers différentes requêtes personnalisées, ce langage permet de traiter des données en les affichants avec plus ou moins de conditions, de les mettre à jour directement par l’utilisateur et de les supprimer.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels