Source for file class.database.php
Documentation is available at class.database.php
* Класс работы с результатом выполнения MySQL-запроса
* Результат выполнения запроса
* Конструктор, возвращает объект с указателем на результат выполнения SQL-запроса
* @param resource $result указателем на результат выполнения SQL-запроса
* @return object AVE_DB_Result
$this->_result =
$result;
* Обрабатывает ряд результата запроса, возвращая ассоциативный массив и численный массив
* Обрабатывает ряд результата запроса и возвращает ассоциативный массив
* Обрабатывает ряд результата запроса и возвращает объект
* Возвращает данные результата запроса
* Перемещает внутренний указатель в результате запроса
* @param int $id - номер ряда результатов запроса
* Возвращает количество рядов результата запроса
* Возвращает количество полей результата запроса
* Возвращает название указанной колонки результата запроса
* @param int $i - индекс колонки
* Освобождает память от результата запроса
* Идентификатор соединения с БД
* Список выполненных запросов
* Метки времени до и после выполнения SQL-запроса
* @param string $host адрес сервера
* @param string $user имя пользователя
* @param string $pass пароль
* @param string $db имя БД
* @return object AVE_DB - объект
function AVE_DB($host, $user, $pass, $db)
$this->_error('connect');
// mysql_query("QUERY_CACHE_TYPE = OFF");
// mysql_query("FLUSH TABLES");
* Получить функцию из которой пришел запрос с ошибкой
foreach ((array)
$stack as $call)
if (@$call['class'] == __CLASS__
) continue;
$function =
$call['function'];
if (isset
($call['class']))
$function =
$call['class'] .
"->$function";
$caller[] =
(isset
($call['file']) ?
'FILE: ' .
$call['file'] .
' ' :
'')
.
'FUNCTION: ' .
$function
.
(isset
($call['line']) ?
' LINE: ' .
$call['line'] :
'');
* @param string $type - тип ошибки
* (при подключении к БД или при выполнении SQL-запроса)
* @param string $query - текст SQL запроса вызвавшего ошибку
function _error($type, $query =
'')
reportLog('SQL ERROR: ' .
$my_error .
PHP_EOL
.
"\t\tURL: " .
HOST .
$_SERVER['SCRIPT_NAME']
.
'?' .
$_SERVER['QUERY_STRING'] .
PHP_EOL
$mail_body =
('SQL ERROR: ' .
$my_error .
PHP_EOL
.
'TIME: ' .
date('d-m-Y, H:i:s') .
PHP_EOL
.
'URL: ' .
HOST .
$_SERVER['SCRIPT_NAME']
.
'?' .
$_SERVER['QUERY_STRING'] .
PHP_EOL
* @param string $query - текст SQL-запроса
* @return object - объект с указателем на результат выполнения запроса
// $this->_time_exec[] = microtime();
// $this->_time_exec[] = microtime();
// $this->_query_list[] = $query;
if (!$res) $this->_error('query', $query);
* Экранирует специальные символы в строках для использования в выражениях SQL
* @param mixed $value - обрабатываемое значение
* Возвращает ID, сгенерированный при последнем INSERT-запросе
* Статистика выполнения SQL-запросов
* @param string $type - тип запрашиваемой статистики
* list - список выполненых зпаросов
* time - время исполнения зпросов
* count - количество выполненных запросов
list
($s_dec, $s_sec) =
explode(' ', $GLOBALS['start_time']);
$arr =
$this->_time_exec;
list
($a_dec, $a_sec) =
explode(' ', $arr[$it++
]);
list
($b_dec, $b_sec) =
explode(' ', $arr[$it++
]);
$time_main =
($a_sec -
$s_sec +
$a_dec -
$s_dec)*
1000;
$time_exec =
($b_sec -
$a_sec +
$b_dec -
$a_dec)*
1000;
?
"<span style=\"background-color:#ff9;\">" .
$this->_query_list[$nq++
] .
"</span>"
:
$this->_query_list[$nq++
];
$query_list .=
(($time_exec >
1) ?
"<li style=\"color:#c00\">(" :
"<li>(")
.
round($time_main) .
" ms) " .
$time_exec .
" ms " .
$query .
"</li>\n";
$arr =
$this->_time_exec;
list
($a_dec, $a_sec) =
explode(" ", $arr[$it++
]);
list
($b_dec, $b_sec) =
explode(" ", $arr[$it++
]);
$time_exec +=
$b_sec -
$a_sec +
$b_dec -
$a_dec;
return sizeof($this->_query_list);
* Статистика выполнения SQL-запросов
* @param string $type - тип запрашиваемой статистики
* list - список выполненых зпаросов
* time - время исполнения зпросов
* count - количество выполненных запросов
static $result, $list, $time, $count;
$list =
"<table width=\"100%\">"
.
"\n\t<col width=\"20\">\n\t<col width=\"70\">";
$list .=
"\n\t<tr>\n\t\t<td><strong>"
.
"</strong></td>\n\t\t<td><strong>"
.
"</strong></td>\n\t\t<td><strong>"
.
"</strong></td>\n\t</tr>";
SELECT STATE, FORMAT(DURATION, 6) AS DURATION
FROM INFORMATION_SCHEMA.PROFILING
WHERE QUERY_ID = " .
$qid
$list .=
"\n\t<tr>\n\t\t<td> </td><td>"
.
"</td>\n\t\t<td>" .
$state .
"</td>\n\t</tr>";
case 'list':
return $list; break;
case 'time':
return $time; break;
case 'count':
return $count; break;
* Возвращает информацию о сервере MySQL
require
(BASE_DIR .
'/inc/db.config.php');
if (! isset
($config)) exit;
$AVE_DB =
new AVE_DB($config['dbhost'], $config['dbuser'], $config['dbpass'], $config['dbname']);
Documentation generated on Fri, 04 Jun 2010 18:01:33 +0400 by phpDocumentor 1.4.3