Module MySQL PDO

Module d'interface de connexion MYSQL pour BDD

PDO (PHP Data Objects) est une extension de PHP qui permet de se connecter à une base de données, comme MySQL, de manière simple, sécurisée et standardisée.

Elle fournit une interface unique pour interagir avec différentes bases de données (MySQL, PostgreSQL, SQLite, etc.), ce qui facilite la maintenance et la portabilité du code.


<?php
$pdo = new PDO("mysql:host=localhost;dbname=ma_base", "user", "password");
?>
									
Pourquoi utiliser PDO ?
  • Sécurité : protection contre les injections SQL grâce aux requêtes préparées
  • Compatibilité : fonctionne avec plusieurs systèmes de bases de données
  • Simplicité : API claire et homogène
  • Performance : gestion optimisée des requêtes
Fonctionnement

Une connexion PDO se fait en 3 étapes principales :

  1. Définir les paramètres de connexion (serveur, base, utilisateur, mot de passe)
  2. Créer une instance PDO
  3. Exécuter des requêtes (préparées ou directes)
PDO est aujourd'hui la méthode recommandée pour accéder à une base de données en PHP.
Elle garantit un code plus sécurisé, maintenable et évolutif.
Connexion MySQL avec PDO

Ce module permet d'établir une connexion sécurisée à une base de données MySQL en utilisant l'extension PDO (PHP Data Objects).

Les paramètres de connexion (serveur, utilisateur, mot de passe, base de données) sont définis en amont puis utilisés pour créer une instance PDO.


<?php
$MYSQL_SERVER = "localhost";
$MYSQL_USERNAME = "phpmyadmin";
$MYSQL_PASSWORD = "xxxxxxxxxx";

$MYSQL_DATABASE_EDELWEISS = "edelweiss";

$dsn = 'mysql:host='.$MYSQL_SERVER.';dbname='.$MYSQL_DATABASE_EDELWEISS.';charset=utf8mb4';
$username = $MYSQL_USERNAME;
$password = $MYSQL_PASSWORD;

if (defined('Pdo\\Mysql::ATTR_INIT_COMMAND')) {
    $initCommand = Pdo\Mysql::ATTR_INIT_COMMAND;
} else {
    $initCommand = PDO::MYSQL_ATTR_INIT_COMMAND;
}

$options = [
    $initCommand => "SET NAMES utf8mb4"
];

try 
    {
    $pdo = new PDO($dsn, $username, $password, $options);
    } 
catch (PDOException $e) 
    {
    die('Erreur de connexion : ' . $e->getMessage());
    }
?>
									
  • $MYSQL_SERVER : adresse du serveur MySQL
  • $MYSQL_USERNAME : identifiant de connexion
  • $MYSQL_PASSWORD : mot de passe
  • $MYSQL_DATABASE_EDELWEISS : nom de la base
  • $dsn : chaîne de connexion PDO
  • $options : configuration (encodage UTF-8MB4) avec support de la syntaxe pour PHP 8.5+
PDO permet une connexion sécurisée et compatible avec plusieurs types de bases de données.
En production, évitez d'afficher les erreurs avec die(). Privilégiez un système de logs sécurisé.
Connexion Multi-bases MySQL avec PDO

Il vous est possible avec ce code ci-dessous d'étendre le module en vous permettant d'établir une ou plusieurs connexions à des bases de données en utilisant PDO. Chaque connexion est indépendante et doit être clairement identifiée par une variable distincte.


<?php
// ----------------------
// 🔹 Base principale
// ----------------------
$MYSQL_SERVER_MAIN = "localhost";
$MYSQL_USERNAME_MAIN = "phpmyadmin";
$MYSQL_PASSWORD_MAIN = "xxxxxxxxxx";
$MYSQL_DATABASE_MAIN = "edelweiss";

$dsn1 = 'mysql:host='.$MYSQL_SERVER_MAIN.';dbname='.$MYSQL_DATABASE_MAIN.';charset=utf8mb4';

try {
    $pdo = new PDO($dsn1, $MYSQL_USERNAME_MAIN, $MYSQL_PASSWORD_MAIN, [
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4'
    ]);
} catch (PDOException $e) {
    die('Erreur connexion principale : ' . $e->getMessage());
}

// ----------------------
// 🔹 Base secondaire
// ----------------------
$MYSQL_SERVER_SECOND = "localhost";
$MYSQL_USERNAME_SECOND = "phpmyadmin";
$MYSQL_PASSWORD_SECOND = "xxxxxxxxxx";
$MYSQL_DATABASE_SECOND = "autre_base";

$dsn2 = 'mysql:host='.$MYSQL_SERVER_SECOND.';dbname='.$MYSQL_DATABASE_SECOND.';charset=utf8mb4';

try {
    $pdo2 = new PDO($dsn2, $MYSQL_USERNAME_SECOND, $MYSQL_PASSWORD_SECOND, [
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4'
    ]);
} catch (PDOException $e) {
    die('Erreur connexion secondaire : ' . $e->getMessage());
}
?>
									

Chaque variable ($pdo, $pdo2, etc.) représente une connexion différente. Il est donc possible d’interroger plusieurs bases de données dans un même projet.

  • $pdo : connexion principale
  • $pdo2 : connexion secondaire
  • Chaque connexion utilise son propre DSN ($dsn1 et $dsn2)
Utile pour travailler avec plusieurs bases (ex : application + logs, multi-clients, API externe…).
Pensez à bien nommer vos connexions pour éviter toute confusion dans le code.