📘 Chapitre 3 – Insérer, mettre à jour et supprimer des enregistrements
1. 🎯 Objectif pédagogique
Être capable d’exécuter des opérations CRUD (Create, Update, Delete) via PHP/PDO pour manipuler les données d’une table MySQL.
2. 📚 Concepts abordés
- Méthode
prepare()
etexecute()
pour des requêtes sécurisées - Instruction
INSERT INTO
pour créer de nouvelles entrées - Instruction
UPDATE
pour modifier des données - Instruction
DELETE
pour supprimer des enregistrements - Vérification des opérations avec
rowCount()
3. 🧠 Explication théorique
PDO permet d’insérer, de modifier et de supprimer des données en toute sécurité grâce aux requêtes préparées. L’approche recommandée :
$stmt = $pdo->prepare("INSERT INTO Utilisateur (nom, email) VALUES (:nom, :email)");
$stmt->execute(['nom' => 'Alice', 'email' => 'alice@test.com']);
- INSERT ajoute des lignes.
- UPDATE modifie des colonnes existantes.
- DELETE supprime des enregistrements.
4. 🛠 Tutoriel pratique
Résumé du travail : Créer un fichier actions_utilisateurs.php
pour tester les opérations CRUD.
Arborescence projet :
projet_bdd/
├── connexion.php
└── actions_utilisateurs.php
Étape 1 : Insertion de données
<?php
require 'connexion.php';
try {
$stmt = $pdo->prepare("INSERT INTO Utilisateur (nom, email) VALUES (:nom, :email)");
$stmt->execute([
'nom' => 'Charlie',
'email' => 'charlie@test.com'
]);
echo "Utilisateur ajouté avec succès.";
} catch (PDOException $e) {
echo "Erreur : " . $e->getMessage();
}
Étape 2 : Mise à jour de données
$stmt = $pdo->prepare("UPDATE Utilisateur SET email = :email WHERE id = :id");
$stmt->execute([
'email' => 'charlie.new@test.com',
'id' => 3
]);
echo "Utilisateur mis à jour.";
Étape 3 : Suppression de données
$stmt = $pdo->prepare("DELETE FROM Utilisateur WHERE id = :id");
$stmt->execute(['id' => 3]);
echo "Utilisateur supprimé.";
Étape 4 : Vérifier les résultats
Utiliser :
echo $stmt->rowCount() . " ligne(s) affectée(s).";
5. 🧾 Résumé et points-clés
- prepare() + execute() sécurise les requêtes et évite l’injection SQL.
INSERT INTO
,UPDATE
,DELETE
sont les commandes de base du CRUD.- Utiliser
rowCount()
pour vérifier les lignes modifiées ou supprimées. - Toujours tester avec
SELECT
avant suppression massive.