TP PHP PDO
Réaliser un programme PHP et déployer en local et sur le serveur eden
Versionner avec git sur le serveur gvipers
Persister des données avec MySql et PDO
Versionner
Créer votre dépôt git sur github
Installer git sur votre machine locale (cf. Git for Windows) et cloner votre dépôt
Dans la suite de ce sujet, $PROJET_CDAW
désigne l'emplacement sur disque de la racine de votre dépôt git.
Environnement local
Pour travailler efficacement vous devez être capable de développer et tester localement votre site Web (sans connexion internet) sur votre machine. Pour cela, il faut installer un serveur Web avec le module PHP et le serveur de base de données MySql (SGBD utilisé dans cette UV). Installer uWamp par exemple.
Créer le fichier PHP
$PROJET_CDAW/BackEnd/tp1/infos.php
avec le contenu suivant:
Committer ce fichier dans votre dépôt git
Copier ce fichier dans la racine de votre serveur Web (par exemple dans
c:\uWamp\www
). Dans la suite de ce sujet,$DOCUMENT_ROOT
désigne l'emplacement sur disque où le serveur va chercher les fichiers.Tester votre installation à travers un navigateur http://localhost/infos.php. Cette page vous donne beaucoup d'informations importantes sur le serveur (variable globales, extensions installées, ...). C'est une source d'information importante en cas d'erreur.
PDO (version simplifiée avec FETCH_OBJ
)
FETCH_OBJ
)PHP Data Objects fournit une couche d'abstraction permettant de ce connecter à une base de données. Nous allons tester cela en local et sur eden.
Créer une table users dans base locale avec PhpMyAdmin
Si vous avez installé uWamp correctement, vous avez le SGBD MySql installé ainsi que PhpMyAdmin qui permet de paramétrer vos bases de données.
Accéder à MySQL via l'URL : http://localhost/phpmyadmin
Utiliser les identifiants par défaut : root/root ou root/ ou cf. doc
Créer une base de données nommée
dbtest
avec l'encodage utf8_general_ciCréer une table nommée
users
avec 3 champs : id, name et email. id est la clé primaire en auto incrément. name et email sont des VARCHAR.Ajouter quelques données fictives dans cette table

Afficher le contenu de la table users
avec PDO
users
avec PDOEn utilisant PHP et PDO, afficher le contenu de la table users
sous la forme d'une tableau HTML.
Créer un fichier $PROJET_CDAW/BackEnd/tp1/initPDO.php
avec le contenu suivant:
Créer et compléter le fichier $PROJET_CDAW/BackEnd/tp1/test-PDO.php
:
L'objectif est de voir dans une page Web un tableau HTML qui affiche les utilisateurs stockés dans la table users
.

Si vous ajoutez ou supprimez un utilisateur dans la table users
via PhpMyAdmin, il suffit de raffraichir la page du navigateur pour que la table HTML se mette à jour.
Ajout d'utilisateurs dans la base
Créer un fichier $PROJET_CDAW/BackEnd/tp1/test-PDO-post.php
qui reprend le même exercice que précédemment mais ajout un formulaire Web sous le tableau HTML qui permet d'ajouter un nouvel utlisateur dans la table users
. Remarqez que le champ id ne doit pas être saisi par l'utilisateur car c'est un champ en auto-incrément dans la base.

PDO avec FETCH_CLASS
FETCH_CLASS
Reprendre l'exercice précédant en utilisant une approche plus objet via l'utilisation d'une classe User
et FETCH_CLASS
de PDO. Créer un fichier $PROJET_CDAW/BackEnd/tp1/test-PDO-class.php
reprenant le code précédent en ajoutant une classe User
. Cette classe doit contenir tout votre code et notamment les méthodes suivantes :
getAllUsers
méthode statique pour récupérer tous les utilisateurs dans la tabeusers
sous forme d'objets instances de la classeUser
showAllUsersAsTable
méthode statique pour afficher tous les utilisateurs sous forme de tableau HTMLtoHtml
méthode retournant une chaîne caractères contenant les infos de l'objet user qui reçoit le message ($user->toHtml()
)
Découpez votre code et ajouter plus de méthodes si nécessaire. Dans votre code HTML, affichez un tableau avec l'ensemble des utilisateurs dans la base ainsi:
PDO avec FETCH_CLASS
et PDO::FETCH_PROPS_LATE
FETCH_CLASS
et PDO::FETCH_PROPS_LATE
Créer un fichier $PROJET_CDAW/BackEnd/tp1/test-PDO-propslate.php
reprenant le code précédent et ajoutant l'utilisation de PDO::FETCH_PROPS_LATE
. Modifier le code de la class User
en conséquence. Notamment, essayer de comprendre quelles sont les variables d'instance d'un objet user par rapport à la version précédente.
CRUD avec PDO
CRUD signifie Create, Read, Update et Delete qui sont les opérations courantes sur des données. Créer un fichier $PROJET_CDAW/BackEnd/tp1/test-PDO-CRUD.php
qui reprend la dernière version du TP1 et affiche un tableau avec tous les utilisateurs. Travail à faire :
Ajouter un bouton permettant de créer un nouvel utilisateur (formulaire POST)
Pour chaque utilisateur dans le tableau, ajoutez des boutons permettant de :
modifier cet utilisateur
supprimer cet utilisateur

Last updated
Was this helpful?