1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <?php
// @author : rawsrc - 2018 - Pour DVP
// on vérifie si la fonction de connexion a déjà été définie afin d'éviter de la redéfinir
if ( ! function_exists('db_connexion')) {
function db_connexion() {
// une fois ouverte, on renvoie toujours la même connexion
static $pdo;
// on vérifie si la connexion n'a pas déjà été initialisée
if ( ! ($pdo instanceof PDO)) {
// tentative d'ouverture de la connexion MySQL
try {
$pdo = new PDO('mysql:host=localhost:/run/mysqld/mysqld10.sock;port=3306;dbname=agora;charset=utf8','root', 'root', [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false
]);
}
catch (PDOException $e) {
throw new InvalidArgumentException('Erreur connexion à la base de données : '.$e->getMessage());
exit;
}
}
// renvoi de la ressource : connexion à la base de données
return $pdo;
}
}
return db_connexion(); |