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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| class C_PDO
{
private static $connexion;
private function __construct()
{
try
{ // base_connexion.php contient les variables $hostname, $database, $username, $password
require('Connexions/base_connexion.php');
// mode d'erreurs
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
// Indispensable pour ne pas avoir execute qui formate en string avec un tableau en paramètre (incompatible avec la clause limit)
$pdo_options[PDO::ATTR_EMULATE_PREPARES] = false;
//Si on utilise principalement le mode objet autant le déclarer ici
//$pdo_options[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_OBJ;
//charset reconnu dans la connexion à partir de php 5.3.6 auquel cas on peut supprimer l'option MYSQL_ATTR_INIT_COMMAND ci-dessous
//$pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";
// connexion avec charset avec php > 5.3.6
self::$connexion = new PDO('mysql:host='.$hostname.';dbname='.$database.';charset=utf8', $username, $password, $pdo_options);
}
catch (PDOException $e)
{
// message en production
die('Serveur de base de données en dérangement, veuillez réessayer ultérieurement.');
// message complet en développement
//echo $e->getMessage();
}
}
public static function getC()
{
if(self::$connexion == NULL) {new self();}
return self::$connexion;
}
}
$connexion = C_PDO::getC(); |
Partager