Advertisement
Guest User

Untitled

a guest
Feb 24th, 2013
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.79 KB | None | 0 0
  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 'sqlsrv':
  26.             #   $dsn = "sqlsrv:Server=".Config::read('db.host').",".Config::read('db.port').";Database=".Config::read('db.basename');
  27.             #   $username = Config::read('db.user');
  28.             #   $password = Config::read('db.password');
  29.             #   break;
  30.            case 'pgsql':
  31.                 $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');
  32.                 break;
  33.         }
  34.        
  35.         try {
  36.             if ($this->dbType == 'pgsql')
  37.                $this->dbh = new PDO($dsn);
  38.             elseif ($this->dbType == 'sqlite' || $this->dbType == 'sqlite2')
  39.                $this->dbh = new PDO($dsn);
  40.             elseif ($this->dbType == 'mysql')
  41.                $this->dbh = new PDO($dsn, $username, $password, $options);
  42.         } catch (PDOException $e) {
  43.             print 'Error!: '.$e->getMessage().'<br/>';
  44.             die();
  45.         }
  46.     }
  47.  
  48.     public static function getInstance()
  49.     {
  50.         if ( ! isset(self::$instance))
  51.         {
  52.             $object = __CLASS__;
  53.             self::$instance = new $object;
  54.         }
  55.         return self::$instance;
  56.     }
  57.    
  58.     public static function getDbType()
  59.     {
  60.         return Database::getInstance()->dbType;
  61.     }
  62.    
  63.     public static function getSetting($param)
  64.     {
  65.         if (Database::getDbType() == 'pgsql')
  66.            $stmt = Database::getInstance()->dbh->prepare("SELECT val FROM settings WHERE key = :param");
  67.         else
  68.            $stmt = Database::getInstance()->dbh->prepare("SELECT `val` FROM `settings` WHERE `key` = :param");
  69.         $stmt->bindParam(':param', $param);
  70.         if ($stmt->execute())
  71.         {
  72.             foreach ($stmt as $row)
  73.             {
  74.                 return $row['val'];
  75.             }
  76.             return $resultArray;
  77.         }
  78.         $stmt = NULL;
  79.         $resultArray = NULL;
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement