Appearance
đ TP 05 - Manipulation de PDO en PHP â
đŻ Objectifs â
â Comprendre et utiliser PDO pour interagir avec une base de donnĂ©es MySQL.
â Savoir se connecter Ă une base de donnĂ©es avec PDO.
â Ătre capable de rĂ©cupĂ©rer des donnĂ©es et de les afficher.
â Apprendre Ă ajouter et supprimer des Ă©lĂ©ments dans une table.
â En bonus : Modifier un Ă©lĂ©ment existant.
đ§ Exercice 1 : PrĂ©paration de la base de donnĂ©es â
Avant de commencer, nous devons créer une base de données. Pour cette partie il va falloir utiliser le SGBDR MySql et l'administrer via phpMyAdmin.
Pour lancer MySql c'est trĂšs simple, il faut retourner sur Xampp et cliquer sur le bouton start :

Une fois lancé, vous pouvez cliquer sur le bouton juste à cÎté : Admin
Cela vous redirige vers l'interface de phpMyAdmin.

Il ne vous reste plus qu'à cliquer sur l'onglet SQL et d'exécuter le script ci-dessous qui va vous permettre de créer une base de données slam_tp1, une table produits, et d'y insérer 3 produits :
sql
-- Création de la base de données slam_tp1
CREATE DATABASE slam_tp1;
USE slam_tp1;
-- Création de la table produits
CREATE TABLE produits (
id INT PRIMARY KEY AUTO_INCREMENT,
nom VARCHAR(255) NOT NULL,
prix DECIMAL(10,2) NOT NULL
);
-- Ajout des différents produits dans la base de données
INSERT INTO produits (nom, prix) VALUES
('Ordinateur', 799.99),
('Souris', 29.99),
('Clavier', 49.99);
DÚs que vous avez créé votre nouvelle base de données, vous pouvez passer à la suite.
đ§ Exercice 2 : Connexion Ă la base de donnĂ©es avec PDO â
- Créez un fichier
config.phpqui contiendra les informations de connexion. - Dans ce fichier, utilisez PDO pour établir la connexion.
- Affichez un message en cas d'erreur.
âčïž Aide
On oublie pas de changer leNomDeMaDb avec le nom de la base de données que vous voulez utilser.
php
try {
$conn = new PDO('mysql:host=localhost;dbname=leNomDeMaDb', $user, $password);
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}đ§ Exercice 3 : Affichage des Ă©lĂ©ments de la base de donnĂ©es â
- Créez un fichier
index.php. - Dans ce fichier :
- Incluez
config.phppour utiliser la connexion PDO. - RĂ©cupĂ©rez tous les produits de la table produits avec une requĂȘte SQL (
SELECT * FROM produits). - Affichez ces produits sous forme de liste ou de tableau HTML.
- Incluez
đ Exemple de sortie attendue :
| ID | Nom | Prix (âŹ) |
|---|---|---|
| 1 | Ordinateur | 799.99 |
| 2 | Souris | 29.99 |
| 3 | Clavier | 49.99 |
âčïž Aide
Pour récupérer tous les produits dans un tableau associatif
php
$stmt = $pdo->query("SELECT * FROM produits");
$produits = $stmt->fetchAll(PDO::FETCH_ASSOC);đ§ Exercice 4 : Ajout dâun nouvel Ă©lĂ©ment dans la base de donnĂ©es â
- Créez un fichier
ajout.php. - Ajoutez un formulaire avec :
- Un champ texte pour le nom du produit.
- Un champ nombre pour le prix.
- Un bouton "Ajouter".
- Lorsque lâutilisateur valide le formulaire :
- Récupérez les données envoyées avec
$_POST. - InsĂ©rez ces donnĂ©es dans la base avec une requĂȘte prĂ©parĂ©e (
INSERT INTO produits). - Redirigez lâutilisateur vers
index.phpavecheader("Location: index.php").
- Récupérez les données envoyées avec
âčïž Aide
Pour rappel, pour faire une requĂȘte prĂ©parĂ©e, il faut utiliser prepare, puis bindParam
php
// PrĂ©paration de la requĂȘte
$stmt = $conn->prepare("INSERT INTO etudiants (nom, prénom) VALUES (:nom, :prénom)");
// Lier les paramĂštres
$nom = "Dupont";
$prénom = "Thomas";
$stmt->bindParam(':nom', $nom);
$stmt->bindParam(':prénom', $prénom);
// ExĂ©cuter la requĂȘte
$stmt->execute();đ§ Exercice 5 : Suppression dâun Ă©lĂ©ment â
- Ajoutez un lien "Supprimer" à cÎté de chaque produit dans
index.php. - Ce lien doit pointer vers
supprimer.php?id=ID_PRODUIT. - Dans
supprimer.php:- Vérifiez si un
idest passĂ© en paramĂštre. - ExĂ©cutez une requĂȘte SQL pour supprimer lâĂ©lĂ©ment (
DELETE FROM produits WHERE id = ?). - Redirigez lâutilisateur vers
index.php.
- Vérifiez si un
đ Bonus : Modification dâun Ă©lĂ©ment â
- Ajoutez un lien "Modifier" à cÎté de chaque produit, qui envoie vers
modifier.php?id=ID_PRODUIT. - Dans
modifier.php:- Affichez un formulaire pré-rempli avec les informations actuelles du produit.
- Lorsquâon valide, mettez Ă jour lâĂ©lĂ©ment dans la base (
UPDATE produits SET nom=?, prix=? WHERE id=?). - Redirigez lâutilisateur vers
index.php.
TIP
Pour modifier les donnĂ©es, on utilise le mĂȘme fonctionnement que pour ajouter des donnĂ©es. On prĂ©pare notre requĂȘte puis on utilise bindParam