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) :

  1. Clique sur Nouvelle base de données dans le panneau gauche
  2. Nomme-la monsite (ou ce que tu veux)
  3. Choisis l'interclassement utf8mb4_unicode_ci
  4. 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/catch pour gérer les erreurs de connexion
  • ATTR_ERRMODE => ERRMODE_EXCEPTION — active les exceptions SQL
  • Isoler la connexion dans connexion.php, inclus avec require_once
  • Ne jamais exposer les identifiants de BDD en production