- 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.