1: | <?php |
2: | |
3: | namespace ZDB ; |
4: | |
5: | |
6: | |
7: | |
8: | class DB |
9: | { |
10: | private static $db = null; |
11: | private static $driver = null; |
12: | private static $dbhost; |
13: | private static $dbname; |
14: | private static $dbuser; |
15: | private static $dbpassword; |
16: | private $conn = null; |
17: | |
18: | private function __construct() { |
19: | |
20: | } |
21: | |
22: | |
23: | |
24: | |
25: | |
26: | |
27: | |
28: | |
29: | |
30: | |
31: | public static function config($dbhost, $dbname, $dbuser, $dbpassword, $driver = "mysqli") { |
32: | global $ADODB_FETCH_MODE, $ADODB_QUOTE_FIELDNAMES; |
33: | $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; |
34: | $ADODB_QUOTE_FIELDNAMES = true; |
35: | |
36: | self::$dbhost = $dbhost; |
37: | self::$dbname = $dbname; |
38: | self::$dbuser = $dbuser; |
39: | self::$dbpassword = $dbpassword; |
40: | self::$driver = $driver; |
41: | } |
42: | |
43: | |
44: | |
45: | |
46: | |
47: | public static function getConnect() { |
48: | $db = DB::getDB(); |
49: | $db->open(); |
50: | |
51: | return $db->conn; |
52: | } |
53: | |
54: | |
55: | |
56: | |
57: | |
58: | public static function getDB() { |
59: | if (self::$db == null) { |
60: | self::$db = new DB(); |
61: | } |
62: | return self::$db; |
63: | } |
64: | |
65: | private function open() { |
66: | if ($this->conn instanceof \ADOConnection) { |
67: | return; |
68: | } |
69: | $this->conn = \ADONewConnection(self::$driver); |
70: | $this->conn->Connect(self::$dbhost, self::$dbuser, self::$dbpassword, self::$dbname); |
71: | if(DB::$driver == "mysqli") { |
72: | $this->conn->Execute("SET NAMES 'utf8'"); |
73: | $this->conn->Execute("SET SQL_BIG_SELECTS=1"); |
74: | } |
75: | |
76: | } |
77: | |
78: | |
79: | |
80: | |
81: | |
82: | public static function Close() { |
83: | $db = DB::getDB(); |
84: | if ($db->conn instanceof \ADOConnection) { |
85: | $db->conn->Close(); |
86: | } |
87: | } |
88: | |
89: | } |
90: | |