PDO
Cette fonctionnalité a été introduite avec PHP 5.1. Elle permet d'interagir avec différents types de SGBD :
- MySQL
- ODBC
- Oracle
- PostgreSQL
- SQLite

Ici, on interagira avec des objets PHP, la plupart du temps indépendants du SGDB. On essayera au maximum de limiter les appels aux fonctionnalités spécifiques pour conserver une compatibilité maximale.
Configuration
Le fichier de configuration va contenir tout le nécessaire pour la connexion à la base.
<?php $db_hostname = 'localhost'; $db_database = 'database'; $db_username = 'username'; $db_password = 'password'; $db_encoding = 'utf8'; $db_type = 'mysql'; ?>
L'utilisation d'un fichier PHP permet de masquer les données contenues. En effet, en cas d'appel
direct au fichier, l'interprêteur enverra une page vide.
Il est donc important de faire attention à la syntaxe pour éviter l'accès aux données (en cas d'erreur par
exemple).
Connexion à la base
On utilisera une instance de la classe PDO
<?php try{ $db_chain = "$db_type:host=$db_hostname;dbname=$db_database;charset=$db_encoding"; $db_server = new PDO($db_chain, $db_username, $db_password); } catch(PDOException $e) { die("Connexion impossible au serveur MySQL :" . $e->getMessage()); } ?>
Construire et exécuter une requête
Une requête est une chaîne de caractères envoyée à la base de données à travers les méthodes query
ou
exec
.
Les résultats sont parcourus grâce à la méthode fetch
<?php $sql = "Select * from Auteur"; /** @var PDOStatement $results */ $results = $db_server->query($sql); while($row = $results->fetch()) { echo $row['Nom']."
"; } ?>
La méthode exec
est utilisée lorsque le retour prévu n'est qu'un nombre de ligne affectées
(insertion, mise à jour, suppression). La méthode query
permet de récupérer le résultat de la
requête.
Déconnexion
Une fois les données récupérées, il faut se déconnecter de la base.
<?php $db_server = NULL; ?>