Vous êtes sur la page 1sur 16

Apprentissage et Pratique du

Langage PHP
Programmation orientée Objets
&
Bases de données

Par
El hassan Abdelwahed
Département d’Informatique
Utiliser les Bases de données avec PHP

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 2


PHP < PDO > SGBD
PHP

PDO (PHP Data Object)

Autres Php_pdo_pgsql php_pdo_mysql php_pdo_oci php_pdo_sqlsrv


SGBD

Il faut utiliser un driver


PDO spécifique au SGBD
utilisé (activation de
l’extension
correspondante)

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 3


PHP < PDO > SGBD

- PDO constitue une couche d'abstraction entre le serveur d'application et le serveur de


base de données

- L’approche objet de PDO permet de plus d’étendre les fonctions d’accès au SGBD
facilement et de manière transparente

- La classe PDO permet d'utiliser une syntaxe uniforme dans l'utilisation des fonctions et
méthodes d'accès aux différents types des bases de données,

- L’usage de la classe PDO offre l’avantage de la portabilité, de la facilité d’utilisation, de la


sécurité que de la rapidité.

- La classe PDO gère: les exceptions, les transactions, les requêtes préparées, … etc.
PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 4
Structures des classe de PDO

La classe PDO : correspond au lien à la base de données, elle dispose des


méthodes permettant de réaliser les fonctions essentielles, à savoir l’envoi de
requête, la création de requêtes préparées, la gestion des transactions, … etc.

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 5


Structures des classe de PDO

La classe PDOStatement : correspond aux requêtes qu’on peut faire, Ses


méthodes permettent de gérer les requêtes préparées et de lire les résultats
des requêtes

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 6


Structures des classe de PDO

La classe PDOException: permet de traiter les erreurs.

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 7


Connexion à la BD

- Les connexions sont établies en créant des instances de la classe PDO.

- Le constructeur de la classe PDO accepte des paramètres pour spécifier la DNS


de la base de données et les paramètres nécessaires à la connexion (nom
d'utilisateur, mot de passe, etc.)

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 8


Gestion des erreurs

La classe PDO offre trois modes pour la gestion des erreurs:

- PDO::ERRMODE_SILENT: C'est le mode par défaut. PDO définit simplement le code


d'erreur à inspecter grâce aux méthodes PDO::errorCode() et PDO::errorInfo() sur les objets
représentant les requêtes, mais aussi ceux représentant les bases de données .

- PDO::ERRMODE_WARNING: Cette configuration est utile lors des tests et du


débogage, si on veut voir le problème sans interrompre l'application.

- PDO::ERRMODE_EXCEPTION: En plus de définir le code d'erreur, PDO lancera une


exception PDOException .

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 9


Requêtes SQL & Méthodes à utiliser

- La méthode exec( ) de la classe PDO est à utiliser principalement pour des requêtes
SQL (insertion, modification) : INSERT, UPDATE, DELETE
La méthode exec( ) retourne le nombre d’enregistrements modifiés.

- La méthode query( ) de la classe PDO est à utiliser principalement pour des


requêtes SQL (selection) : SELECT, EXPLAIN, SHOW, DESC
La méthode query( ) retourne, dans un objet de la classe PDOStatment, l’ensemble
des enregistrements sélectionnés.

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 10


Sécurité & Échappement

La méthode quote() de la classe PDO permet d’effectuer les opérations


d’échappement des chaînes de caractères et la formate de façon à pouvoir
l’utiliser directement dans une requête SQL (les caractères spéciaux sont
échappés, etc.): faille par injection SQL, … etc.

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 11


Requêtes préparées
- La requête ne doit être analysée (ou préparée) qu'une seule fois, mais peut être exécutée
plusieurs fois avec des paramètres identiques ou différents.
- Les requêtes préparées peuvent être personnalisées en utilisant des variables en guise de
paramètres: elles permettent de créer des requêtes SQL qui contiennent des paramètres
auxquels on peut donner des valeurs différentes en fonction des besoins.

- Avantages: Impose une certaine rigueur de programmation; Optimisation du temps


d'exécutions requis pour les requêtes; Exécutées plus d'une fois; Plus grande sécurité au
niveau des requêtes; … etc.

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 12


Requêtes préparées
Lier un paramètre à un nom de variable spécifique

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 13


Requêtes préparées: Associer une valeur à un paramètre

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 14


Requêtes préparées: Typage des arguements

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 15


Transactions

PHP & Bases de données El Hassan Abdelwahed, FSSM, UCAM 16

Vous aimerez peut-être aussi