Файл: system/database.php
Строк: 57
<?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 = ((($GLOBALS["___mysqli_ston"] = mysqli_init()) && (mysqli_real_connect($GLOBALS["___mysqli_ston"], DB_HOST, DB_USER, DB_PASS, NULL, 3306, NULL, 65536))) ? $GLOBALS["___mysqli_ston"] : FALSE) or $this->error('Не возможно подключиться к mysql серверу');
mysqli_select_db($GLOBALS["___mysqli_ston"], constant('DB_BASE')) or $this->error('Не возможно выбрать базу данных: '.DB_BASE);
}
/* Выполнение запроса к базе */
public function query($query)
{
/* Засекаем время выполнения запроса */
$start_time = microtime(1);
/* Выполняем запрос */
$result = mysqli_query( $this->db_link, $query) or $this->error($query . PHP_EOL . mysqli_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)
{
$result = $this->query($query)->fetch_row();
return $result[0];
}
/* Последний вставленный id */
public function insert_id()
{
return ((is_null($___mysqli_res = mysqli_insert_id($this->db_link))) ? false : $___mysqli_res);
}
/* Аналог mysql_fetch_assoc() */
public function fetch($result)
{
return mysqli_fetch_assoc($result);
}
/* Получение строки */
public function get_row($query, $restype = MYSQLI_ASSOC)
{
$result = $this->query($query);
if($row = mysqli_fetch_array($result, $restype))
{
return array_map('stripslashes', $row);
}
else
{
return false;
}
}
/* Аналог mysql_num_rows() */
public function num($result)
{
return mysqli_num_rows($result);
}
/* Вывод ошибки и завершение работы */
protected function error($error)
{
if($this->debugging) echo '<pre>'. $error .'</pre>';
exit;
}
}
?>