Exemple #1
0
 public static function getInstance()
 {
     if (is_null(self::$_instance)) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
 /**
  * Connecting with database.
  *
  * Function create an singleton object, and creates database connection.
  * Connection handler is stored in self::$_instance->db variable.
  *
  * @param string $type database type. Only 'mysql' like for now.
  * @return object PDO
  * @throws CESyntaxError if incorrect database type
  * @throws CEDBError     if problem with connect with database
  *
  * @access public
  * @static
  */
 public static function connect($type = 'mysql')
 {
     if (!isset(self::$_instance)) {
         try {
             switch ($type) {
                 case 'mysql':
                     $dsn = sprintf('mysql:host=%s;dbname=%s', DB_HOST, DB_NAME);
                     self::$_instance = new PDO($dsn, DB_USER, DB_PASS);
                     break;
                 default:
                     throw new CESyntaxError('Invalid database type.');
             }
             self::$_instance->setAttribute(PDO::ATTR_AUTOCOMMIT, true);
             self::$_instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
             self::$_instance->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL);
             self::$_instance->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
             self::$_instance->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
         } catch (PDOException $e) {
             throw new CEDBError(sprintf('Connection failed: %s.', $e->getMessage()));
         }
     }
     return self::$_instance;
 }