-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb.php
More file actions
61 lines (48 loc) · 2.02 KB
/
db.php
File metadata and controls
61 lines (48 loc) · 2.02 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
<?php
class db {
private $dbName;
private $dbHost;
private $dbUser;
private $dbPass;
private $connectLink = null;
private static $instance; // экземпляра объекта
private function __construct(){} // Защищаем от создания через new Singleton
private function __clone() {} // Защищаем от создания через клонирование
private function __wakeup() {} // Защищаем от создания через unserialize
public static function getInstance() { // Возвращает единственный экземпляр класса. @return Singleton
if (empty(self::$instance)) {
require_once('config.php');
self::$instance = new self();
self::$instance -> dbName = $db['name'];
self::$instance -> dbHost = $db['host'];
self::$instance -> dbUser = $db['user'];
self::$instance -> dbPass = $db['pass'];
}
return self::$instance;
}
//Выполняем запросы
public function query($qString, $qParams = null) {
$stmt = $this -> connectLink -> prepare($qString);
$stmt -> execute($qParams);
return $stmt;
}
//Соединяемся с базой
public function openConnection() {
try {
$this -> connectLink = new PDO('mysql:host='.$this -> dbHost.';dbname='.$this -> dbName.';charset=utf8', $this -> dbUser, $this -> dbPass);
$this -> connectLink -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
setError(DBERROR);
die();
//die('Подключение не удалось: ' . $e -> getMessage());
}
return $this -> connectLink;
}
//Закрываем соединение с базой
public function closeConnection() {
if (!is_null($this -> connectLink)) {
$this -> connectLink = null;
}
}
}
?>