Example #1
0
 /**
  * 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];
 }