- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
require_once $_SERVER['DOCUMENT_ROOT'] . '/models/core/class.Application.php';
require_once 'class.DatabaseConnect.php';
require_once 'class.DatabaseResult.php';
class DatabaseQuery extends Application {
private $m_db_connect = NULL; //Соединение с БД
private $m_query_statment = NULL; //Результат последнего запроса
private $m_construct_query = NULL; //Строка формирования запроса
public function __construct(DatabaseConnect $db_connect) {
$this->m_db_connect = $db_connect;
}
public function __destruct() {
$this->m_db_connect = null;
}
//Вставляет данные в таблицу
public function insert($data) {
if (count($data) === 0)
return false;
$query_list = [];
//Обход таблиц
foreach ($data as $t_name => $table) {
//Ассациативный массив даннвх, где ключ массива это имя колонки в БД
$column_list = [];
//Копируем данные в отдельный массив
foreach ($table as $c_name => $column)
$column_list[$c_name] = $column;
//Строка запроса
$query = "INSERT INTO {$t_name} (" . implode(', ', array_keys($column_list)) . ') VALUES ';
//Выпоняем обход
for ($i = 0; $i < count($column_list[array_keys($column_list)[0]]); $i++) {
$query_values = '(';
//
foreach ($column_list as $c_name => $column)
$query_values .= '\'' . $column_list[$c_name][$i] . '\',';
$query_values = chop($query_values, ',') . '),';
$query .= $query_values;
}
$query_list[] = chop($query, ',');
}
try {
for ($i = 0; $i < count($query_list); $i++) {
$result = $this->query($query_list[$i]);
}
} catch (PDOException $e) {
Application::handlerErrorDB($e);
return false;
}
return true;
}
public function setSelect($data = ['*']) {
$query = 'SELECT ';
foreach ($data as $v)
$query .= $v . ',';
$this->m_construct_query = chop($query, ',') . ' ';
return $this;
}
public function setDelete($tables = []) {
$query = 'DELETE ';
foreach ($tables as $v)
$query .= $v . ',';
$this->m_construct_query = chop($query, ',') . ' ';
return $this;
}
public function setUpdate($tables) {
$query = 'UPDATE ';
foreach ($tables as $v)
$query .= $v . ',';
$this->m_construct_query = chop($query, ',') . ' ';
return $this;
}
public function setSet($data) {
$query = 'SET ';
foreach ($data as $k => $v)
$query .= "$k = '$v',";
$this->m_construct_query .= chop($query, ',') . ' ';
return $this;
}
public function setFrom($tables) {
$query = 'FROM ';
foreach ($tables as $v)
$query .= $v . ',';
$this->m_construct_query .= chop($query, ',') . ' ';
return $this;
}
...
Вот что бывает когда у тебя юношеский максимализм - ты пытаешь написать свой фреймворк, и при этом это твой первый проект на PHP.