Advertisement
Guest User

Untitled

a guest
Feb 24th, 2013
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. class Database
  3. {
  4.     public $dbh;
  5.     private static $instance;
  6.  
  7.     private function __construct()
  8.     {
  9.         $this->dbType = Config::read('db.type');
  10.        
  11.         switch ($this->dbType)
  12.         {
  13.             case 'mysql':
  14.                 $dsn = "mysql:host=".Config::read('db.host').";dbname=".Config::read('db.basename');
  15.                 $username = Config::read('db.user');
  16.                 $password = Config::read('db.password');
  17.                 $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES ".Config::read('db.charset'));
  18.                 break;
  19.             case 'sqlite':
  20.                 $dsn = "sqlite:".Config::read('db.basename');
  21.                 break;
  22.             case 'sqlite2':
  23.                 $dsn = "sqlite2:".Config::read('db.basename');
  24.                 break;
  25.             case 'pgsql':
  26.                 $dsn = "pgsql:host=".Config::read('db.host').";port=".Config::read('db.port').";dbname=".Config::read('db.basename').";user=".Config::read('db.user').";password=".Config::read('db.password');
  27.                 break;
  28.         }
  29.        
  30.         try {
  31.             if ($this->dbType == 'pgsql')
  32.                $this->dbh = new PDO($dsn);
  33.             elseif ($this->dbType == 'sqlite' || $this->dbType == 'sqlite2')
  34.                $this->dbh = new PDO($dsn);
  35.             elseif ($this->dbType == 'mysql')
  36.                $this->dbh = new PDO($dsn, $username, $password, $options);
  37.         } catch (PDOException $e) {
  38.             print 'Error!: '.$e->getMessage().'<br/>';
  39.             die();
  40.         }
  41.     }
  42.  
  43.     public static function getInstance()
  44.     {
  45.         if ( ! isset(self::$instance))
  46.         {
  47.             $object = __CLASS__;
  48.             self::$instance = new $object;
  49.         }
  50.         return self::$instance;
  51.     }
  52.    
  53.     public static function getDbType()
  54.     {
  55.         return Database::getInstance()->dbType;
  56.     }
  57.    
  58.     public static function getSetting($param)
  59.     {
  60.         if (Database::getDbType() == 'pgsql')
  61.            $stmt = Database::getInstance()->dbh->prepare("SELECT val FROM settings WHERE key = :param");
  62.         else
  63.            $stmt = Database::getInstance()->dbh->prepare("SELECT `val` FROM `settings` WHERE `key` = :param");
  64.         $stmt->bindParam(':param', $param);
  65.         if ($stmt->execute())
  66.         {
  67.             foreach ($stmt as $row)
  68.             {
  69.                 return $row['val'];
  70.             }
  71.             return $resultArray;
  72.         }
  73.         $stmt = NULL;
  74.         $resultArray = NULL;
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement