View difference between Paste ID: SPrjQWjH and p9wmuyf9
SHOW: | | - or go back to the newest paste.
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':
25+
26-
            #	$dsn = "sqlsrv:Server=".Config::read('db.host').",".Config::read('db.port').";Database=".Config::read('db.basename');
26+
27-
            #	$username = Config::read('db.user');
27+
28-
            #	$password = Config::read('db.password');
28+
29-
            #	break;
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
}