Leçon 2 / 8
Leçon 02 · Partie 1 — Bases de données
Connecter PHP à MySQL (PDO)
Créer une base de données dans phpMyAdmin
D'abord, crée une base de données. Dans phpMyAdmin (localhost/phpmyadmin) :
- Clique sur Nouvelle base de données dans le panneau gauche
- Nomme-la
monsite(ou ce que tu veux) - Choisis l'interclassement utf8mb4_unicode_ci
- Clique Créer
Ensuite, crée une table. Clique sur ta base, puis Nouvelle table :
-- Table créée via phpMyAdmin ou directement en SQL :
CREATE TABLE utilisateurs (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(100) NOT NULL,
email VARCHAR(150) NOT NULL UNIQUE,
age INT
);
La colonne id avec AUTO_INCREMENT se numérote seule. MySQL ajoute 1 à chaque nouvel enregistrement. C'est le standard.
PDO : la connexion moderne
Deux façons de connecter PHP à MySQL : mysqli_* (ancien) et PDO (moderne). Utilise PDO car :
- Fonctionne avec MySQL, PostgreSQL, SQLite et d'autres
- Protège contre les injections SQL (expliqué dans la leçon 04)
- Code plus propre et plus lisible
Se connecter avec PDO
$host = 'localhost';
$dbname = 'monsite';
$user = 'root'; // utilisateur par défaut XAMPP
$pass = ''; // mot de passe vide par défaut XAMPP
try {
$pdo = new PDO(
"mysql:host={$host};dbname={$dbname};charset=utf8mb4",
$user,
$pass
);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connexion réussie !";
} catch (PDOException $e) {
die("Erreur : " . $e->getMessage());
}
Le bloc try/catch gère les erreurs. Si la connexion échoue, tu vois le message. Sans ça, PHP plante sans rien dire.
Isoler la connexion dans un fichier séparé
Bonne pratique : mets le code de connexion dans un fichier connexion.php. Ensuite, inclus-le dans chaque page qui en a besoin.
// connexion.php
$host = 'localhost';
$dbname = 'monsite';
$user = 'root';
$pass = '';
try {
$pdo = new PDO(
"mysql:host={$host};dbname={$dbname};charset=utf8mb4",
$user, $pass
);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Connexion impossible : " . $e->getMessage());
}
// index.php — utiliser la connexion
require_once 'connexion.php';
// $pdo est maintenant disponible ici
Structure des fichiers recommandée
monprojet/
├── connexion.php ← connexion BDD
├── index.php ← page principale
├── ajouter.php ← formulaire d'ajout
├── modifier.php ← formulaire de modification
└── supprimer.php ← suppression
En production, ne mets jamais les identifiants de BDD dans le code. Utilise un fichier .env exclu de Git. Pour apprendre en local, c'est acceptable.
// À retenir
- PDO = façon moderne et sécurisée de connecter PHP à MySQL
new PDO("mysql:host=...;dbname=...;charset=utf8mb4", $user, $pass)- Toujours utiliser un bloc
try/catchpour gérer les erreurs de connexion ATTR_ERRMODE => ERRMODE_EXCEPTION— active les exceptions SQL- Isoler la connexion dans
connexion.php, inclus avecrequire_once - Ne jamais exposer les identifiants de BDD en production