-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpdo.php
105 lines (93 loc) · 2.4 KB
/
pdo.php
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
<?php
class DB
{
public static $dsn = 'mysql:dbname=u0483195_test;host=localhost';
public static $user = 'u0483195_default';
public static $pass = 'cZ4Exh8_';
/**
* Объект PDO.
*/
public static $dbh = null;
/**
* Statement Handle.
*/
public static $sth = null;
/**
* Выполняемый SQL запрос.
*/
public static $query = '';
/**
* Подключение к БД
*/
public static function getDbh()
{
if (!self::$dbh) {
try {
self::$dbh = new PDO(
self::$dsn,
self::$user,
self::$pass,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")
);
self::$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
} catch (PDOException $e) {
exit('Error connecting to database: ' . $e->getMessage());
}
}
return self::$dbh;
}
/**
* Добавление в таблицу, в случаи успеха вернет вставленный ID, иначе 0.
*/
public static function add($query, $param = array())
{
self::$sth = self::getDbh()->prepare($query);
return (self::$sth->execute((array) $param)) ? self::getDbh()->lastInsertId() : 0;
}
/**
* Выполнение запроса.
*/
public static function set($query, $param = array())
{
self::$sth = self::getDbh()->prepare($query);
return self::$sth->execute((array) $param);
}
/**
* Получение строки из таблицы.
*/
public static function getRow($query, $param = array())
{
self::$sth = self::getDbh()->prepare($query);
self::$sth->execute((array) $param);
return self::$sth->fetch(PDO::FETCH_ASSOC);
}
/**
* Получение всех строк из таблицы.
*/
public static function getAll($query, $param = array())
{
self::$sth = self::getDbh()->prepare($query);
self::$sth->execute((array) $param);
return self::$sth->fetchAll(PDO::FETCH_ASSOC);
}
/**
* Получение значения.
*/
public static function getValue($query, $param = array(), $default = null)
{
$result = self::getRow($query, $param);
if (!empty($result)) {
$result = array_shift($result);
}
return (empty($result)) ? $default : $result;
}
/**
* Получение столбца таблицы.
*/
public static function getColumn($query, $param = array())
{
self::$sth = self::getDbh()->prepare($query);
self::$sth->execute((array) $param);
return self::$sth->fetchAll(PDO::FETCH_COLUMN);
}
}