📘 Chapitre 1 – Connexion à une base de données avec PDO
1. 🎯 Objectif pédagogique
Être capable de connecter un script PHP à une base de données MySQL en utilisant l’extension PDO, de manière sécurisée et réutilisable.
2. 📚 Concepts abordés
- Présentation de PDO (PHP Data Objects)
- Chaîne de connexion DSN (
mysql:host=...;dbname=...
) - Gestion des exceptions avec
try/catch
- Paramètres de connexion (
host
,dbname
,user
,password
) - Fermeture de connexion (libération des ressources)
3. 🧠 Explication théorique
PDO est une extension PHP permettant de se connecter à différentes bases de données de manière uniforme. L’avantage principal est la sécurité et la portabilité. Une connexion PDO suit généralement ce schéma :
$pdo = new PDO('mysql:host=localhost;dbname=ma_base', 'user', 'password');
Il est recommandé d’utiliser un bloc try/catch pour capturer les erreurs de connexion et éviter les messages d’erreur non contrôlés.
4. 🛠 Tutoriel pratique
Résumé du travail : Créer un fichier connexion.php
qui établit une connexion PDO à une base de données blogdb
.
Arborescence projet :
projet_bdd/
└── connexion.php
Étape 1 : Préparer la base MySQL
Créer une base blogdb
via phpMyAdmin ou avec :
CREATE DATABASE blogdb;
Étape 2 : Écrire le code de connexion
<?php
$host = 'localhost';
$dbname = 'blogdb';
$username = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connexion réussie à la base $dbname";
} catch (PDOException $e) {
echo "Erreur de connexion : " . $e->getMessage();
}
Étape 3 : Tester la connexion
- Enregistrer le fichier
connexion.php
. - Lancer http://localhost/projet_bdd/connexion.php.
- Si la connexion est correcte, le message “Connexion réussie” s’affiche.
Étape 4 : Centraliser la connexion (optionnel)
Pour les projets plus grands, placer le code dans un fichier config/connexion.php
et l’inclure dans les autres scripts avec require
.
5. 🧾 Résumé et points-clés
- PDO est recommandé pour les connexions MySQL en PHP.
- Utiliser
try/catch
pour gérer les erreurs. setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)
permet de lever des exceptions pour tout problème SQL.- La connexion peut être centralisée dans un fichier unique.