<?php
class MumbuDB {
/**
* Ссылка соединения
*/
public $db_link;
/**
* Режим отладки
*/
public $debugging = true;
/**
* Запросы
*/
public $list_queries = array();
/**
* Подключение к MySQL
*/
public function connect($DB_HOST,$DB_USER,$DB_NAME,$DB_PASSWORD){
$this->db_link = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD) or $this->error("Не возможно подключиться к MySQL серверу");
mysql_select_db($DB_NAME) or $this->error('Не возможно выбрать базу данных "'.$DB_NAME.'"');
mysql_query("SET NAMES UTF8");
}
/**
* Аналог mysql_num_rows
*/
public function mumbu_sql($sql){
# Засекаем время выполнения запроса
$start_time = microtime(true);
# Выполняем запрос
$result = mysql_query($sql, $this->db_link) or $this->error($sql . PHP_EOL . mysql_error($this->db_link));
# Получаем время по окончанию запроса
$end_time = microtime(true);
# Высчитываем время на запрос
$query_time = $end_time - $start_time;
$this->list_queries[] = array(
'query' => $query,
'time' => $query_time
);
return $result;
}
/**
* Аналог mysql_num_rows
*/
public function mumbu_num_rows($sql){
return mysql_num_rows($this->mumbu_sql($sql));
}
/**
* Аналог mysql_result
*/
public function mumbu_one($sql){
return mysql_result($this->mumbu_sql($sql),0);
}
/**
* Аналог mysql_fetch_assoc
*/
public function mumbu_fetch($sql){
return mysql_fetch_assoc($this->mumbu_sql($sql));
}
/**
* Последний вставленный id
*/
public function insert_id() {
return mysql_insert_id($this->db_link);
}
/**
* Закрытие соединения
*/
public function close(){
if($this->db_link) mysql_close($this->db_link);
$this->db_link = NULL;
exit;
}
/**
* Вывод ошибки и завершение работы
*/
protected function error($error){
if($this->debugging) print "<pre>". $error ."";exit;
}
}
?>
Использовать:
$DB = new MumbuDB();
$DB->connect('DB_HOST', 'DB_USER', 'DB_NAME', 'DB_PASSWORD');
Небольшой профайлер приложения
function a_profiler($start_time){
GLOBAL $DB;
$end_time = microtime(true);
echo PHP_EOL .'<!-- '. PHP_EOL;
echo 'Время выполнения: '. round($end_time - $start_time, 5) .' сек.'. PHP_EOL . PHP_EOL;
if($DB) {
echo 'Запросов к БД: '. count($DB->list_queries) . PHP_EOL;
if(count($DB->list_queries) > 0) {
foreach($DB->list_queries AS $query_data) {
echo $query_data['query'] .' ('. round($query_data['time'], 5) .' сек.)'. PHP_EOL;
}
}
}
else {
echo "Подключения к базе не было.";
}
echo PHP_EOL . PHP_EOL;
echo 'GET данные:'. PHP_EOL;
print_r($_GET);
echo PHP_EOL . PHP_EOL;
echo 'POST данные:'. PHP_EOL;
print_r($_POST);
echo PHP_EOL . PHP_EOL;
echo 'COOKIE данные:'. PHP_EOL;
print_r($_COOKIE);
echo PHP_EOL . PHP_EOL;
echo 'SESSION данные:'. PHP_EOL;
print_r($_SESSION);
echo ' -->';
}