Cours 05 - Base de données et PDO

Cours 05 - Base de données et PDO

https://github.com/heig-vd-progserv1-course

Support de cours · Présentation (web) · Présentation (PDF)

L. Delafontaine, avec l'aide de GitHub Copilot.

Ce travail est sous licence CC BY-SA 4.0.

HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Retrouvez plus de détails dans le support de cours

Cette présentation est un résumé du support de cours. Pour plus de détails, consultez le support de cours.

HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Objectifs (1/2)

  • Expliquer les concepts de base des bases de données et des systèmes de gestion de base de données (SGBD)
  • Utiliser l'extension PDO de PHP pour interagir avec une base de données
  • Créer une base de données SQLite et des tables avec PDO
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Objectifs (2/2)

  • Insérer, mettre à jour, récupérer et supprimer des données dans une base de données SQLite avec PDO
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Base de données

  • Ensemble d'informations organisées de manière à permettre un accès rapide et efficace à ces informations
  • Généralement organisées en tables, qui contiennent des lignes et des colonnes :
    • Lignes : enregistrements uniques
    • Colonnes : champs de données
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Système de gestion de base de données (SGBD)

  • Logiciel permettant de créer, gérer et interroger des bases de données
  • Fournit une interface pour interagir avec les données (création, insertion, mise à jour, suppression)
  • Chacun avec ces caractéristiques mais avec les mêmes concepts de base
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

SQLite

  • SGBD léger et intégré
  • Pas besoin d'installation ou de configuration complexe
  • Stocke les données dans un fichier unique
  • Prise en charge de SQL standard
  • Idéal pour les applications de petite à moyenne taille
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

PDO

  • PHP Data Objects (PDO) est une extension de PHP qui fournit une interface orientée objet pour accéder à des bases de données
  • Permet d'interagir avec différentes bases de données (MySQL, PostgreSQL, SQLite, etc.)
  • Fournit une API cohérente pour effectuer des opérations sur des base de données
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Connexion à une base de données SQLite

<?php
// Chemin vers le fichier de base de données SQLite
const DATABASE_FILE = 'path/to/database.db';

// Création d'une instance de PDO pour se connecter à la base de données
$pdo = new PDO("sqlite:" . DATABASE_FILE);
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Création d'une table

// Création d'une table `users`
$sql = 'CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT NOT NULL UNIQUE
)';

// On exécute la requête SQL pour créer la table
$pdo->exec($sql);
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Insertion de données

// On définit la requête SQL pour ajouter un utilisateur
$sql = "INSERT INTO users (
    name,
    email
) VALUES (
    'John Doe',
    'john.doe@heig-vd.ch'
)";

// On exécute la requête SQL pour ajouter l'utilisateur
$pdo->exec($sql);
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO
// On définit la requête SQL pour ajouter un utilisateur
$sql = "INSERT INTO users (
    name,
    email
) VALUES (
    'Jane Doe',
    'jane.doe@heig-vd.ch'
)";

// On exécute la requête SQL pour ajouter l'utilisateur
$pdo->exec($sql);
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO
// On récupère l'identifiant de l'utilisateur inséré
$janeDoeId = $pdo->lastInsertId();

// On affiche l'identifiant de l'utilisateur inséré
echo "L'identifiant de l'utilisateur inséré est : $janeDoeId<br>";
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Récupération de données

// On définit la requête SQL pour récupérer l'utilisateur `Jane Doe`
$sql = "SELECT * FROM users WHERE id = '$janeDoeId'";

// On récupère l'utilisateur spécifique
$user = $pdo->query($sql);

// On transforme le résultat en tableau associatif
$user = $user->fetch();

// On affiche l'utilisateur
print_r($user);
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO
// On définit la requête SQL pour récupérer tous les utilisateurs
$sql = "SELECT * FROM users";

// On récupère tous les utilisateurs
$users = $pdo->query($sql);

// On transforme le résultat en tableau associatif
$users = $users->fetchAll();

// On affiche les utilisateurs
print_r($users);
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Mise à jour de données

// On définit la requête SQL pour mettre à jour l'utilisateur `Jane Doe`
$sql = "UPDATE users SET
    name = 'Jane Smith',
    email = 'jane.smith@heig-vd.ch'
WHERE id = '$janeDoeId'";

// On exécute la requête SQL pour mettre à jour l'utilisateur
$pdo->exec($sql);
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO
// On récupère l'utilisateur mis à jour
$sql = "SELECT * FROM users WHERE id = '$janeDoeId'";
$user = $pdo->query($sql);
$user = $user->fetch();

// On affiche l'utilisateur mis à jour
print_r($user);
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Suppression de données

// On définit la requête SQL pour supprimer l'utilisateur
$sql = "DELETE FROM users WHERE id = '$janeDoeId'";

// On exécute la requête SQL pour supprimer l'utilisateur
$pdo->exec($sql);

// On récupère tous les utilisateurs
$sql = "SELECT * FROM users";
$users = $pdo->query($sql);
$users = $users->fetchAll();

// On affiche les utilisateurs restants
print_r($users);
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Conclusion

  • Les bases de données permettent de stocker et de gérer des données
  • SQLite est un système de gestion de base de données (SGBD)
  • PDO est une extension PHP qui permet d'interagir avec SGBDs
  • Les opérations de base incluent la création, l'insertion, la mise à jour et la suppression de données
HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Questions

Est-ce que vous avez des questions ?

HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

À vous de jouer !


Pour le mini-projet ou les exercices, n'hésitez pas à vous entraidez si vous avez des difficultés !

HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0
Cours 05 - Base de données et PDO

Sources

HEIG-VD - ProgServ1 Course 2024-2025 - CC BY-SA 4.0

URLs

Illustrations