<?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 ' -->'; }