PDO (PHP Data Objects)

Cette présentation porte sur PDO (PHP Data Objects), une extension PHP qui fournit une interface orientée objet pour accéder à différentes bases de données.

D'après le document PDO (PHP Data Objects)

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

PDO (PHP Data Objects)

Document source

PDO (PHP Data Objects)

Programming / Database Management · PPTX · 14 pages · 2015

Consulter le document original →

Cette présentation porte sur PDO (PHP Data Objects), une extension PHP qui fournit une interface orientée objet pour accéder à différentes bases de données. Elle s'inscrit dans un cours de programmation web ou de gestion de bases de données avec PHP, et explique comment se connecter à une base, exécuter des requêtes, manipuler les résultats et gérer les opérations d'insertion, modification et suppression.

Introduction à PDO

PDO signifie PHP Data Objects. C'est une extension de PHP qui offre une interface uniforme et orientée objet pour accéder à une base de données. Cette interface permet d'interagir avec plusieurs types de bases de données sans changer le code d'accès, ce qui facilite la portabilité des applications PHP.

Bases de données supportées par PDO

PDO supporte un large éventail de bases de données, ce qui en fait un outil polyvalent. Parmi celles-ci, on trouve :

  • FreeTDS / Microsoft SQL Server / Sybase
  • Firebird/Interbase 6
  • IBM DB2
  • IBM Informix Dynamic Server
  • MySQL (versions 3.x, 4.x, 5.x)
  • Oracle Call Interface
  • ODBC v3 (IBM DB2, unixODBC et win32 ODBC)
  • PostgreSQL
  • SQLite 2 et 3
  • 4D

Les principales méthodes de PDO

PDO propose de nombreuses méthodes pour gérer les requêtes et les résultats :

  • exec() : exécute une requête qui ne retourne pas de résultat (INSERT, UPDATE, DELETE).
  • prepare() : prépare une requête SQL pour exécution ultérieure, souvent utilisée avec des paramètres.
  • query() : exécute une requête SQL et retourne un jeu de résultats.
  • errorCode() et errorInfo() : fournissent des informations sur les erreurs éventuelles.
  • fetch(), fetchAll(), fetchColumn(), fetchObject() : méthodes pour récupérer les données retournées par une requête.
  • setFetchMode() : définit le mode de récupération des données.
  • nextRowset() : passe au jeu de résultats suivant dans le cas de requêtes multiples.
  • rowCount() : retourne le nombre de lignes affectées par une requête.
  • columnCount() : retourne le nombre de colonnes dans un jeu de résultats.
  • execute() : exécute une requête préparée.

Se connecter à une base MySQL avec PDO

Pour se connecter à une base MySQL, il faut fournir plusieurs informations :

  • Le nom de l'hôte (adresse de l'ordinateur où MySQL est installé)
  • Le nom de la base de données
  • Le nom d’utilisateur (login) pour s'identifier au serveur
  • Le mot de passe associé

En local, l'hôte est généralement localhost, le login root et il n'y a pas de mot de passe.

Voici un exemple d'instanciation d'un objet PDO pour se connecter à une base nommée projet :

<?php
$bdd = new PDO('mysql:host=localhost;dbname=projet;charset=utf8', 'root', '');
?>

L'objet $bdd représente la connexion à la base de données.

Exécution et récupération des résultats d'une requête

PDO permet d'exécuter des requêtes SQL de différentes manières. La méthode query() exécute une requête SQL standard et retourne un objet représentant la réponse.

Exemple d'exécution d'une requête :

$reponse = $bdd->query('SELECT id, nom, email FROM personne');

Supposons que la table personne contienne les données suivantes :

idnomemail
1Ouali[email protected]
2Hafedh[email protected]
3Abidi[email protected]
4Houcem[email protected]

Pour récupérer une entrée, on utilise la méthode fetch() qui renvoie la première ligne sous forme d'un tableau associatif :

$donnees = $reponse->fetch();

Ce tableau contient alors les champs et leurs valeurs :

idnomemail
1Ouali[email protected]

Pour parcourir toutes les entrées, on utilise une boucle qui appelle fetch() à chaque itération :

$reponse = $bdd->query('SELECT nom FROM personne');
while ($donnees = $reponse->fetch())
{
    echo $donnees['nom'] . '<br />';
}

Chaque appel à fetch() avance d'une ligne dans le jeu de résultats.

Fermeture de la connexion

La connexion à la base de données reste active tant que l'objet PDO existe. Pour fermer explicitement la connexion, il faut détruire l'objet en supprimant toutes ses références :

$bdd = null;

ou

unset($bdd);

Sinon, PHP fermera automatiquement la connexion à la fin du script.

Insérer, modifier et supprimer des données

Pour modifier les données dans la base, on utilise la méthode exec() qui exécute des requêtes ne retournant pas de jeu de résultats, comme INSERT, UPDATE ou DELETE.

Insertion de données

Exemple d'insertion :

$bdd->exec("INSERT INTO personne (nom, email) VALUES ('Wissam', '[email protected]')");

Modification de données

Exemple de mise à jour :

$nb_modifs = $bdd->exec("UPDATE personne SET email='[email protected]' WHERE nom='Wissam'");
echo $nb_modifs . ' entrées ont été modifiées !';

La variable $nb_modifs contient le nombre de lignes affectées par la requête.

Suppression de données

Exemple de suppression :

$nb_supp = $bdd->exec("DELETE FROM personne WHERE nom='Wissam'");
echo $nb_supp . ' entrées supprimées !';

Points clés

  • PDO est une extension PHP orientée objet pour accéder à plusieurs types de bases de données.
  • Elle supporte de nombreuses bases, notamment MySQL, PostgreSQL, SQLite, Oracle, SQL Server, etc.
  • Les principales méthodes sont exec(), prepare(), query(), et diverses méthodes pour récupérer les résultats.
  • La connexion à MySQL se fait en instanciant un objet PDO avec les paramètres d'hôte, base, utilisateur et mot de passe.
  • Les résultats d'une requête SELECT sont récupérés ligne par ligne avec fetch(), souvent dans une boucle.
  • La connexion est fermée en détruisant l'objet PDO ou automatiquement à la fin du script.
  • Les opérations d'insertion, modification et suppression s'effectuent avec exec() qui retourne le nombre de lignes affectées.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions