Файл: system/database.php
Строк: 49
<?php
/**
*    Author: Elime;
*    ICQ: 618878;
*    E-mail: elime4@gmail.com;
*/
class MySQL
{
    public $db_link;
    public $debugging = true;
    public $list_queries = array();
    public $count_queries = 0;
    public $time_queries = 0;
    
    /* Соединение с базой */
    public function connect()
    {
        $this->db_link = mysql_connect(DB_HOST, DB_USER, DB_PASS, 0, 65536) or $this->error('Не возможно подключиться к MySQL серверу');
        mysql_select_db(DB_BASE) or $this->error('Не возможно выбрать базу данных: '.DB_BASE);
    }
    
    /* Выполнение запроса к базе */
    public function query($query)
    {
        /* Засекаем время выполнения запроса */
        $start_time = microtime(1);
        
        /* Выполняем запрос */
        $result = mysql_query($query, $this->db_link) or $this->error($query . PHP_EOL . mysql_error($this->db_link));
        
        /* Получаем время по окончанию запроса */
        $end_time = microtime(1);
        
        /* Высчитываем время на запрос */
        $query_time = $end_time - $start_time;
        
        /* Массив запросов и время выполнения каждого */
        $this->list_queries[] = array('query' => $query, 'time' => $query_time);
        
        /* Общее время выполнения запросов и количество запросов */
        $this->time_queries += $query_time;
        $this->count_queries++;
        
        return $result;
    }
    
    
    /* Массив запросов */
    public function list_queries()
    {
        return $this->list_queries;
    }
    
    
    /* Кодировка БД */
    public function charset($charset)
    {
        $this->query("SET NAMES $charset");
    }
    
    /* Получение результата */
    public function result($query)
    {
        $query = $this->query($query);
        return mysql_result($query, 0, 0);
    }
    
    
    /* Последний вставленный id */
    public function insert_id() 
    {
        return mysql_insert_id($this->db_link);
    }
    
    /* Аналог mysql_fetch_assoc() */
    public function fetch($result)
    {
        return mysql_fetch_assoc($result);
    }
    
    
    /* Получение строки */
    public function get_row($query, $restype = MYSQL_ASSOC)
    {
        $result = $this->query($query);
        if($row = mysql_fetch_array($result, $restype))
        {
            return array_map('stripslashes', $row);
        }
        else
        {
            return false;
        }
    }
    
    /* Аналог mysql_num_rows() */
    public function num($result)
    {
        return mysql_num_rows($result);
    }
    
    /* Вывод ошибки и завершение работы */
    protected function error($error)
    {
        if($this->debugging) echo '<pre>'. $error .'</pre>';
        exit;
    }
}
?>