Chapprend · PHP

PHP et la base de données avec PDO

Préparer une requête, transmettre des paramètres et lire le résultat.

Ouvrir la connexion

PDO fournit une interface pour communiquer avec une base de données. Le DSN précise le pilote, le serveur et la base. Les identifiants doivent provenir de la configuration du serveur.

PHP
$pdo = new PDO($dsn, $utilisateur, $motDePasse, [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]);

Préparer et exécuter

PHP
$requete = $pdo->prepare(
    "SELECT id_client, nom FROM client WHERE ville = :ville"
);
$requete->execute(["ville" => $ville]);
$clients = $requete->fetchAll();

foreach ($clients as $client) {
    echo htmlspecialchars($client["nom"], ENT_QUOTES, "UTF-8");
}

Lire et modifier

  • fetch récupère une ligne ; fetchAll récupère les lignes restantes.
  • FETCH_ASSOC utilise les noms des colonnes comme clés.
  • INSERT, UPDATE et DELETE peuvent aussi utiliser prepare puis execute.
  • Une erreur technique doit être diagnostiquée dans les journaux, sans afficher les secrets de connexion dans la page.
Pourquoi séparer la requête et ses paramètres ?

Le texte SQL reste distinct des valeurs fournies. Une valeur ne devient pas une instruction SQL.