Accueil » PHP Utilisation de PDO

PHP Utilisation de PDO

Dans cette procédure, je vais vous montrez quelques cas d’utilisation de l’extension PHP – PDO. PHP propose une extension qui s’appelle PHP Data Objects (PDO), cette extension permet donc d’interagir avec une base de données à l’aide d’une classe. La classe PDO permet aussi de sécuriser des échanges avec une base de données lors de l’exécution de requête SQL et permet d’éviter les injections SQL ou XSS.

Logo PHP - PDO

Prérequis :

  • Avoir un serveur Web avec PHP

PHP – Utilisation de PDO

Avant d’utiliser vérifier que PDO est activé sur votre serveur web.

Localiser le fichier php.ini de votre serveur web :
Xampp : C:\xampp\php\php.ini
Apache2 (Debian ) : /etc/php/apache2/votre-version-php/php.ini

Recherchez les extensions php est décommettez si besoin les extensions pour l’utilisation de PDO (Normalement PDO est actif par défaut dans PHP).

Ensuite une fois que PDO est actif sur votre serveur Web, redémarrer le.

Enfin nous allons créer une connexion PDO :

<?php 


$hote = "127.0.0.1";    // Adresse du serveur
$port = "3306";         // Port de connexion
$utilisateur = "root";  // Nom d'utilisateur
$mot_de_passe = "";     // Mot de passe

$pdo = new PDO("mysql:host=$hote:$port;dbname=$nom_db;charset=utf8", $utilisateur, $mot_de_passe); // Création de la connexion PDO

?>

Récupération des informations dans la base de données à l’aide de PDO sans paramètres.

Avant de procéder à la récupération de données, créer une base de données avec une table et des données dedans.
Si vous utilisez Xampp, aidez vous de phpmyadmin pour effectuer ces opérations.

<?php 


$hote = "127.0.0.1";    // Adresse du serveur
$port = "3306";         // Port de connexion
$utilisateur = "root";  // Nom d'utilisateur
$mot_de_passe = "";     // Mot de passe

$pdo = new PDO("mysql:host=$hote:$port;dbname=$nom_db;charset=utf8", $utilisateur, $mot_de_passe); // Création de la connexion PDO


$nom_table = "utilisateurs"; // Nom de la table de la base de données

$requete = $pdo->prepare("SELECT * FROM $nom_table"); // préparation de la Requête SQL
$requete->execute(); // Exécution de la requête

$resultats = $requete->fetchAll(PDO::FETCH_ASSOC); // Récupération des résultats de la requête SQL


$requete->closeCursor(); // Ferme le curseur associé à la requête

var_dump($resultats); // Affiche les résultats de la requête SQL

?>

Récupération des informations dans la base de données à l’aide de paramètres et de PDO :

<?php 


$hote = "127.0.0.1";    // Adresse du serveur
$port = "3306";         // Port de connexion
$utilisateur = "root";  // Nom d'utilisateur
$mot_de_passe = "";     // Mot de passe

$pdo = new PDO("mysql:host=$hote:$port;dbname=$nom_db;charset=utf8", $utilisateur, $mot_de_passe); // Création de la connexion PDO


$nom_table = "utilisateurs"; // Nom de la table de la base de données

$requete = $pdo->prepare("SELECT * FROM $nom_table WHERE id_utilisateur = :id_utilisateur"); // préparation de la Requête SQL
$requete->bindValue(':id_utilisateur', 1, PDO::PARAM_INT); // Définit la valeur de la variable :id_utilisateur (de type entier) égale à 1
$requete->execute(); // Exécution de la requête

$resultat = $requete->fetch(PDO::FETCH_ASSOC); // Récupération du résultat de la requête SQL

$requete->closeCursor(); // Ferme le curseur associé à la requête

var_dump($resultat); // Affiche les résultats de la requête SQL
?>

Maintenant nous allons insérer des données dans la base de données depuis le code php :

<?php 


$hote = "127.0.0.1";    // Adresse du serveur
$port = "3306";         // Port de connexion
$utilisateur = "root";  // Nom d'utilisateur
$mot_de_passe = "";     // Mot de passe

$pdo = new PDO("mysql:host=$hote:$port;dbname=$nom_db;charset=utf8", $utilisateur, $mot_de_passe); // Création de la connexion PDO


$nom_table = "utilisateurs"; // Nom de la table de la base de données

$requete = $pdo->prepare("INSERT INTO $nom_table (nom, prenom, email, mdp) VALUES (:nom, :prenom, :email,  :mdp)"); // préparation de la Requête SQL
$requete->bindValue(':nom', 'Dupont', PDO::PARAM_STR); // Définit la valeur de la variable :nom (de type chaîne de caractères) égale à 'Dupont'
$requete->bindValue(':prenom', 'Jean', PDO::PARAM_STR); // Définit la valeur de la variable :prenom (de type chaîne de caractères) égale à 'Jean'
$requete->bindValue(':email', 'jean.dupont@exemple.com', PDO::PARAM_STR); // Définit la valeur de la variable :email (de type chaîne de caractères) égale à 'jean.dupont@exemple.com'
$requete->bindValue(':mdp', 'azerty', PDO::PARAM_STR); // Définit la valeur de la variable :mdp (de type chaîne de caractères) égale à 'azerty'

$requete->execute(); // Exécution de la requête
$requete->closeCursor(); // Ferme le curseur associé à la requête

?>

Et maintenant nous allons voir l’édition de données :

<?php 


$hote = "127.0.0.1";    // Adresse du serveur
$port = "3306";         // Port de connexion
$utilisateur = "root";  // Nom d'utilisateur
$mot_de_passe = "";     // Mot de passe

$pdo = new PDO("mysql:host=$hote:$port;dbname=$nom_db;charset=utf8", $utilisateur, $mot_de_passe); // Création de la connexion PDO


$nom_table = "utilisateurs"; // Nom de la table de la base de données

$requete = $pdo->prepare("UPDATE $nom_table SET nom = :nom, prenom = :prenom WHERE id_utilisateur = :id_utilisateur"); // préparation de la Requête SQL
$requete->bindValue(':nom', 'Dupont', PDO::PARAM_STR); // Définit la valeur de la variable :nom (de type chaîne de caractères) égale à 'Dupont'
$requete->bindValue(':prenom', 'Jean', PDO::PARAM_STR); // Définit la valeur de la variable :prenom (de type chaîne de caractères) égale à 'Jean'
$requete->bindValue(':id_utilisateur', 1, PDO::PARAM_INT); // Définit la valeur de la variable :id_utilisateur (de type entier) égale à 1
$requete->execute(); // Exécution de la requête
$requete->closeCursor(); // Ferme le curseur associé à la requête

?>

Et pour finir, la suppression de données :

<?php 


$hote = "127.0.0.1";    // Adresse du serveur
$port = "3306";         // Port de connexion
$utilisateur = "root";  // Nom d'utilisateur
$mot_de_passe = "";     // Mot de passe

$pdo = new PDO("mysql:host=$hote:$port;dbname=$nom_db;charset=utf8", $utilisateur, $mot_de_passe); // Création de la connexion PDO


$nom_table = "utilisateurs"; // Nom de la table de la base de données

$requete = $pdo->prepare("DELETE FROM $nom_table WHERE id_utilisateur = :id_utilisateur"); // préparation de la Requête SQL
$requete->bindValue(':id_utilisateur', 1, PDO::PARAM_INT); // Définit la valeur de la variable :id_utilisateur (de type entier) égale à 1
$requete->execute(); // Exécution de la requête
$requete->closeCursor(); // Ferme le curseur associé à la requête

?>

Une fois que vous avez compris le principe de la requête préparer avec PDO et que vous connaissez les requêtes SQL vous êtes libres de faire tous les traitements que vous souhaitez en PHP avec une base de données. Le principe est le même pour la SÉLECTION, l’AJOUT, l’EDITION, et la SUPPRESSION des données.

Si vous souhaitez voir l’utilisation de PDO pour une gestion des utilisateurs, je vous conseil les articles/vidéos de PrimeFX : TUTO PHP – Créer un espace membre

Sources :

https://www.php.net/manual/fr/book.pdo.php

Susceptible de vous intéresser :