1. Fichier de configuration (config.php)
<?php
return [
'database' => [
'host' => 'localhost',
'port' => '3306',
'name' => 'ma_base',
'user' => 'mon_user',
'pass' => 'mon_mot_de_passe',
'charset' => 'utf8mb4'
]
];
?>
2. Classe Database (Database.php)
<?php
class Database {
private static $instance = null;
private $pdo;
private function __construct() {
$config = require 'config.php';
$db = $config['database'];
try {
$dsn = "mysql:host={$db['host']};port={$db['port']};dbname={$db['name']};charset={$db['charset']}";
$this->pdo = new PDO($dsn, $db['user'], $db['pass'], [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false
]);
} catch (PDOException $e) {
die("Erreur de connexion : " . $e->getMessage());
}
}
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new Database();
}
return self::$instance->pdo;
}
}
?>
3. Utilisation dans votre application
<?php
require_once 'Database.php';
$pdo = Database::getInstance();
try {
$stmt = $pdo->query("SELECT * FROM utilisateurs LIMIT 5");
$users = $stmt->fetchAll();
print_r($users);
} catch (PDOException $e) {
echo "Erreur : " . $e->getMessage();
}
?>