

06_05_03 PDO
Presentation
•
Computers
•
6th Grade
•
Practice Problem
•
Medium
benidir mourad
Used 8+ times
FREE Resource
40 Slides • 8 Questions
1
PDO
2
Introduction à PDO avec PHP et MySQL
Objectifs :
Comprendre ce qu'est PDO.
Apprendre à configurer l'environnement pour utiliser PDO.
Se connecter à une base de données MySQL.
Effectuer des opérations simples : lire, insérer, mettre à jour, supprimer des données.
3
Qu'est-ce que PDO ?
PDO : PHP Data Objects.
Permet de se connecter et d’interagir avec plusieurs types de bases de données.
Avantages :
Supporte plusieurs bases de données (MySQL, SQLite, etc.).
Sécurisé grâce aux requêtes préparées.
4
Multiple Choice
Quels types de bases de données PDO peut-il gérer ?
Uniquement MySQL
SQLite, PostgreSQL, MySQL, etc.
Uniquement SQLite
Aucun des choix ci-dessus
5
Connexion à une base de données
Structure de base :
DSN (Data Source Name) : informations de connexion.
Nom d'utilisateur.
Mot de passe.
6
Connexion à une base de données
Exemple simple :
7
Multiple Choice
Que signifie DSN dans PDO ?
Database Source Name
Data Source Name
Dynamic Server Node
Aucun des choix ci-dessus
8
06_05_Exercice_02 - Se connecter à une base de données
Instructions :
Utilisez le code vu auparavant pour vous connecter à la base de données cours_pdo. (créer la base de données avant)
Lancez le script dans votre environnement UwAmp.
Vérifiez que le message "Connexion réussie" s’affiche. Si une erreur se produit, corrigez-la.
Exercice à réaliser dans le réportoire 06_05_Exercice_02
9
Lire des données (SELECT)
Contenu :
Exemple d'une requête simple avec PDO :
10
Explication détaillée ligne par ligne pour comprendre le code précédent:
$sql = 'SELECT * FROM utilisateurs';
Que fait cette ligne ?
On écrit une requête SQL sous forme de chaîne de caractères.
La commande SELECT * signifie : récupérer toutes les colonnes de la table utilisateurs.
Objectif :
Préparer une requête pour obtenir toutes les données de la table utilisateurs.
11
Explication détaillée ligne par ligne pour comprendre le code précédent:
$stmt = $pdo->query($sql);
Que fait cette ligne ?
On exécute la requête SQL grâce à la méthode query() de l'objet PDO ($pdo).
Le résultat de cette requête est stocké dans une variable $stmt (abréviation de "statement").
Important :
La méthode query() est utilisée pour des requêtes simples, comme SELECT.
12
Explication détaillée ligne par ligne pour comprendre le code précédent:
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
Que fait cette ligne ?
La méthode fetch(PDO::FETCH_ASSOC) récupère une ligne de résultat sous forme de tableau associatif (clé-valeur).
La boucle while parcourt chaque ligne de la table une par une.
13
Explication détaillée ligne par ligne pour comprendre le code précédent:
Exemple de tableau retourné : Si une table utilisateurs contient :
La première exécution de fetch() retourne :
14
Explication détaillée ligne par ligne pour comprendre le code précédent:
echo "Nom : " . $row['nom'] . "<br>";
Que fait cette ligne ?
On affiche la valeur de la colonne nom pour chaque ligne.
"Nom : " est du texte fixe, et $row['nom'] contient le nom récupéré.
Le "<br>" permet de passer à la ligne suivante pour chaque résultat.
15
Multiple Choice
À quoi sert PDO::FETCH_ASSOC dans ce code ?
À insérer des données.
À récupérer les données sous forme de tableau associatif.
À exécuter une requête SQL.
À créer une base de données.
16
Insérer des données (INSERT)
Exemple d'insertion sécurisée :
17
Insérer des données (INSERT)
$sql = 'INSERT INTO utilisateurs (nom, email) VALUES (:nom, :email)';
Que fait cette ligne ?
On prépare une requête SQL pour insérer des données dans la table utilisateurs.
Les colonnes ciblées sont nom et email.
Les valeurs sont représentées par :nom et :email (appelées paramètres nommés).
18
Insérer des données (INSERT)
Pourquoi utiliser :nom et :email au lieu de valeurs fixes ?
Cela rend la requête sécurisée en empêchant les injections SQL.
Ces paramètres seront remplacés par les vraies valeurs plus tard.
19
Insérer des données (INSERT)
$stmt = $pdo->prepare($sql);
Que fait cette ligne ?
La méthode prepare() prépare la requête SQL pour qu’elle puisse être exécutée.
Préparer signifie que la structure de la requête est analysée, mais les valeurs ne sont pas encore ajoutées.
Cela améliore la sécurité et les performances.
20
Insérer des données (INSERT)
$stmt->bindParam(':nom', $nom);
Que fait cette ligne ?
La méthode bindParam() associe le paramètre :nom (dans la requête SQL) à la variable $nom (dans le code PHP).
Chaque fois que la requête SQL utilise :nom, elle sera remplacée par la valeur contenue dans $nom.
21
Insérer des données (INSERT)
Pourquoi utiliser bindParam() ?
Elle permet de lier une variable PHP à un paramètre SQL.
La valeur n’est pas copiée immédiatement : la liaison est active jusqu'à l’exécution de la requête avec execute().
22
Insérer des données (INSERT)
$stmt->bindParam(':email', $email);
Que fait cette ligne ?
Même principe que bindParam(':nom', $nom).
Le paramètre :email sera remplacé par la valeur de $email lorsque la requête sera exécutée.
23
Insérer des données (INSERT)
$nom = 'Alice'; et $email = 'alice@example.com';
Que font ces lignes ?
On attribue des valeurs aux variables $nom et $email qui seront utilisées dans la requête.
Ces valeurs seront injectées dans la requête grâce à bindParam().
24
Insérer des données (INSERT)
$stmt->execute();
Que fait cette ligne ?
La méthode execute() exécute la requête préparée avec les valeurs liées (via bindParam()).
Une fois exécutée, la base de données ajoute une nouvelle ligne dans la table utilisateurs.
25
Insérer des données (INSERT)
Concept clé : Les paramètres nommés (:nom, :email)
Pourquoi mettre : devant le nom ?
En SQL, les paramètres nommés sont des placeholders qui indiquent où insérer des valeurs dynamiques.
Ils commencent toujours par : pour les différencier des colonnes ou des valeurs fixes.
26
Insérer des données (INSERT)
Pourquoi utiliser bindParam() au lieu d’écrire directement les valeurs ?
Avantages :
Sécurité : Protège contre les injections SQL (car les valeurs sont échappées automatiquement).
Réutilisabilité : La requête préparée peut être exécutée plusieurs fois avec des valeurs différentes.
27
Insérer des données (INSERT)
Alternative possible : bindValue()
Si vous voulez assigner une valeur fixe (pas une variable), vous pouvez utiliser bindValue() :
28
Résumé : Étapes pour insérer des données avec PDO
Écrire la requête SQL avec des paramètres nommés (:nom, :email).
Préparer la requête avec prepare().
Lier les paramètres avec bindParam() ou bindValue().
Attribuer des valeurs aux variables si vous utilisez bindParam().
Exécuter la requête avec execute().
29
Multiple Choice
Quel est l’avantage principal d’utiliser des paramètres nommés et des requêtes préparées ?
Améliorer la lisibilité du code.
Protéger contre les injections SQL.
Ajouter plusieurs lignes à la fois.
Permettre des jointures entre tables.
30
Modifier ou supprimer des données (UPDATE et DELETE)
Exemple de modification :
31
Modifier ou supprimer des données (UPDATE et DELETE)
Exemple de suppression :
32
Multiple Choice
Quelle commande SQL permet de supprimer une ligne ?
DELETE
UPDATE
SELECT
INSERT
33
06_05_Exercice_03 - Ajoutez un utilisateur dans la table utilisateurs en saisissant un prénom et un email via un formulaire d'inscription.
Ajoutez un utilisateur dans la table utilisateurs en saisissant un prénom et un email via un formulaire d'inscription.
Consignes :
Vérifiez dans phpMyAdmin si l’utilisateur a bien été ajouté.
Exportez la base de données dans le répertoire 06_05_Exercice_03
34
06_05_Exercice_04 - Insérez trois utilisateurs différents en utilisant une boucle.
Consignes :
Créez un tableau PHP contenant trois ensembles de noms et emails.
Parcourez ce tableau avec une boucle pour insérer chaque utilisateur.
Exemple de tableau :
35
36
Tester si une donnée est présente dans une base de données
Souvent, il est nécessaire de vérifier si une donnée existe déjà dans une base, par exemple :
Lorsqu’un utilisateur s’inscrit, vérifier si son adresse email existe déjà.
Éviter les doublons dans des données importantes.
Exemple pratique :
Vérifier si une adresse email est déjà enregistrée avant d'ajouter un nouvel utilisateur.
37
Multiple Choice
Pourquoi vérifier si une donnée est présente dans une base de données ?
Pour éviter les doublons.
Pour accélérer les requêtes SQL.
Pour supprimer les données inutiles.
Aucun des choix.
38
Requête SQL : SELECT avec condition
La commande SQL SELECT permet de vérifier si une donnée existe :
39
Requête SQL : SELECT avec condition
Traduction de la requête précédente :
Récupère les lignes de la table utilisateurs où la colonne email est égale à 'email@example.com'.
Résultat :
Si la requête retourne une ou plusieurs lignes, la donnée existe.
Si elle ne retourne rien, la donnée est absente.
40
Requête SQL : SELECT avec condition
Voici un exemple simple pour vérifier si une adresse email existe dans la table utilisateurs :
41
Requête SQL : SELECT avec condition
Explications ligne par ligne :
Préparer la requête avec un paramètre nommé (:email).
Associer une valeur à :email avec bindParam.
Exécuter la requête.
Utiliser rowCount() pour vérifier combien de lignes sont retournées :
> 0 : la donnée existe.
= 0 : la donnée n'existe pas.
42
06_05_Exercice_05 - Vérifiez si l’adresse test@example.com est présente dans la table utilisateurs.
Consigne :
Utilisez le code présenté dans les slides précédents.
Modifiez la valeur de $email pour tester différentes adresses.
43
Multiple Choice
Quelle commande SQL permet de vérifier la présence d’une donnée ?
INSERT
SELECT
DELETE
UPDATE
44
Multiple Choice
Quelle méthode PDO retourne le nombre de lignes trouvées ?
bindParam()
fetch()
rowCount()
execute()
45
46
Introduction
Dans le développement d'applications, il est essentiel de protéger les données sensibles comme les mots de passe des utilisateurs. Les sauvegarder en clair est une erreur grave. Dans cet exercice, vous apprendrez à utiliser une méthode sécurisée pour chiffrer les mots de passe avant de les stocker dans une base de données.
47
Objectifs
Comprendre comment chiffrer un mot de passe.
Implémenter un chiffrement sécurisé
Tester votre solution pour garantir son bon fonctionnement.
48
Exercice de recherche : 06_05_Exercice_06 - Sécurisation des mots de passe en PHP
Créer un formulaire d'inscription permettant à un utilisateur de fournir un nom d'utilisateur et un mot de passe.
Vérifier si l'utilisateur existe déjà dans la base de données.
Chiffrer le mot de passe avec password_hash() avant de le sauvegarder dans la base de données.
Implémenter une page de connexion permettant à l'utilisateur de vérifier son mot de passe avec password_verify().
PDO
Show answer
Auto Play
Slide 1 / 48
SLIDE
Similar Resources on Wayground
48 questions
Untitled Presentation
Presentation
•
KG
37 questions
APSL: Lire un graphique en courbe
Presentation
•
6th - 8th Grade
46 questions
L'Asie du Sud-Est (carte et drapeaux)
Presentation
•
6th - 8th Grade
38 questions
Proportionnalité
Presentation
•
7th Grade
37 questions
Les Yeux de Carmen
Presentation
•
5th Grade
44 questions
L'adjectif qualificatif
Presentation
•
KG
42 questions
Révision nombres décimaux
Presentation
•
6th Grade
39 questions
RÉDIGER UN MESSAGE TEXTE OU COURRIEL POUR UTILISATION DANS L
Presentation
•
7th - 8th Grade
Popular Resources on Wayground
10 questions
Safety Day 2026 – Student Review
Quiz
•
9th Grade
21 questions
Continents and Oceans
Quiz
•
6th Grade
20 questions
Parts of Speech
Quiz
•
5th Grade
16 questions
Subject & Predicate
Quiz
•
5th Grade
25 questions
Multiplication Facts
Quiz
•
5th Grade
12 questions
Map Skills
Quiz
•
3rd Grade
22 questions
Continents and Oceans
Quiz
•
5th Grade
15 questions
Rounding Decimals
Quiz
•
5th Grade