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;
?>