Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Database
- {
- public $dbh;
- private static $instance;
- private function __construct()
- {
- $this->dbType = Config::read('db.type');
- switch ($this->dbType)
- {
- case 'mysql':
- $dsn = "mysql:host=".Config::read('db.host').";dbname=".Config::read('db.basename');
- $username = Config::read('db.user');
- $password = Config::read('db.password');
- $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES ".Config::read('db.charset'));
- break;
- case 'sqlite':
- $dsn = "sqlite:".Config::read('db.basename');
- break;
- case 'sqlite2':
- $dsn = "sqlite2:".Config::read('db.basename');
- break;
- case 'pgsql':
- $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');
- break;
- }
- try {
- if ($this->dbType == 'pgsql')
- $this->dbh = new PDO($dsn);
- elseif ($this->dbType == 'sqlite' || $this->dbType == 'sqlite2')
- $this->dbh = new PDO($dsn);
- elseif ($this->dbType == 'mysql')
- $this->dbh = new PDO($dsn, $username, $password, $options);
- } catch (PDOException $e) {
- print 'Error!: '.$e->getMessage().'<br/>';
- die();
- }
- }
- public static function getInstance()
- {
- if ( ! isset(self::$instance))
- {
- $object = __CLASS__;
- self::$instance = new $object;
- }
- return self::$instance;
- }
- public static function getDbType()
- {
- return Database::getInstance()->dbType;
- }
- public static function getSetting($param)
- {
- if (Database::getDbType() == 'pgsql')
- $stmt = Database::getInstance()->dbh->prepare("SELECT val FROM settings WHERE key = :param");
- else
- $stmt = Database::getInstance()->dbh->prepare("SELECT `val` FROM `settings` WHERE `key` = :param");
- $stmt->bindParam(':param', $param);
- if ($stmt->execute())
- {
- foreach ($stmt as $row)
- {
- return $row['val'];
- }
- return $resultArray;
- }
- $stmt = NULL;
- $resultArray = NULL;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement