/** * Etabli la connection à la bases de données si ce n'est pas déjà fait et * retourne l'objet connection. * * @static * @access public * @param string $dsn (optionnel, sinon récupéré dans la constante DB_DSN) * @return ressource */ public static function connection($dsn = false) { if (false === $dsn) { if (false !== self::$activeDSN) { $dsn = self::$activeDSN; } else { if (defined('DB_DSN')) { $dsn = DB_DSN; } else { // exit with a FATAL ERROR trigger_error('No database DSN provided. You must pass a dsn string to ' . 'Database::connection() or define a DB_DSN constant.', E_USER_ERROR); } } } if (!isset(self::$connectionArray[$dsn])) { // register connection self::$connectionArray[$dsn] = NewADOConnection($dsn); } if (self::$activeDSN !== false && self::$activeDSN != $dsn) { // we must "re-connect" explicitely if another connection was // opened before if (!self::$connectionArray[$dsn]->connect()) { trigger_error('Unable to connect to database.', E_USER_ERROR); } } self::$activeDSN = $dsn; return self::$connectionArray[$dsn]; }