📘 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() et execute() 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.