This repository was archived by the owner on Feb 8, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDB.php
More file actions
122 lines (98 loc) · 2.39 KB
/
DB.php
File metadata and controls
122 lines (98 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
/*
* Usage:
$query = "SELECT 'testrow' FROM 'database_name'.'table'";
DB::get()->query($query);
if(DB::get()->count() != 0){
foreach(DB::get()->results() as $row){
$testrow = $row->testrow;
}
}
* Util:
DB::get()->lastInsertId()
DB::get()->result()
*/
class DB{
private static $_instance = null;
private $_pdo,
$_query,
$_error = false,
$_results,
$_lastid,
$_count = 0,
$_queriesCount = 0;
private function __construct(){
try {
$this->_pdo = new PDO('mysql:host=localhost;dbname=halite2018', "<username>", "<password>");
} catch(PDOException $e){
die($e->getMessage()); // Enable in case of error
}
}
public static function get(){
if(!isset(self::$_instance)){
self::$_instance = new DB();
}
return self::$_instance;
}
public function query($sql, $params = array()){
$this->_queriesCount++;
if($this->_queriesCount == 1) {
$this->query("SET NAMES utf8;");
}
$this->_error = false;
if($this->_query = $this->_pdo->prepare($sql)){
$x = 1;
if(count($params)){
foreach($params as $param){
$this->_query->bindValue($x, $param);
$x++;
}
}
if($this->_query->execute()){
$this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount();
$this->_lastid = $this->_pdo->lastInsertId();
} else {
$this->_error = true;
print_r($this->_query->errorInfo()); // Enable in case of error
}
}
return $this;
}
public function update($table, $data){
$params = '';
$values = '';
$updEqual = '';
$valuesArr = array();
foreach ($data as $key => $value) {
$params .= $key.',';
$values .= '?,';
$updEqual .= $key.'=VALUES('.$key.'),';
array_push($valuesArr, $value);
}
$params = removeTrailingComma($params);
$values = removeTrailingComma($values);
$updEqual = removeTrailingComma($updEqual);
$query = "INSERT INTO ".$table." (".$params.") VALUES (".$values.") ON DUPLICATE KEY UPDATE ".$updEqual;
$this->query($query, $valuesArr);
}
public function results(){
return $this->_results;
}
public function result(){
return $this->results()[0];
}
public function lastInsertId(){
return $this->_lastid;
}
public function error(){
return $this->_error;
}
public function count(){
return $this->_count;
}
public function queriesCount(){
return $this->_queriesCount;
}
}
?>