mysqli_report
(PHP 5)
mysqli_report — Включает или выключает протоколирование во внутренних функциях
Описание
bool mysqli_report
( int
$flags
)mysqli_report() довольно мощный механизм для совершенствования текста ваших запросов и кода на этапе разработки и отладки. В зависимости от установленных флагов эта функция заносит в журнал ошибочные вызовы mysqli функций или запросов, которые не используют индекс (или используют плохой индекс).
Список параметров
-
flags
-
Поддерживаемые флаги Имя Описание MYSQLI_REPORT_OFF
Выключает протоколирование MYSQLI_REPORT_ERROR
Протоколирование ошибок mysqli функций MYSQLI_REPORT_STRICT
Вместо предупреждений выбрасывать исключение mysqli_sql_exception MYSQLI_REPORT_INDEX
Записывать в журнал тот факт, что в запросе использовался плохой индекс или индекс не использовался вообще MYSQLI_REPORT_ALL
Задать все опции (протоколировать все)
Возвращаемые значения
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Список изменений
Версия | Описание |
---|---|
5.2.15 & 5.3.4 | Изменение режима протоколирования. Теперь режим задается для каждого запроса, в отличие от каждого процесса, как было ранее. |
Примеры
Пример #1 Объектно-ориентированный стиль
<?php
/* активация протоколирования */
mysqli_report(MYSQLI_REPORT_ALL);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* проверка подключения */
if (mysqli_connect_errno()) {
printf("Не удалось подключиться: %s\n", mysqli_connect_error());
exit();
}
/* этот запрос должен отчитаться об ошибке */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* этот запрос должен отчитаться об использовании плохого индекса */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();
$mysqli->close();
?>
Смотрите также
- mysqli_driver::$report_mode
- mysqli_debug() - Выполняет процедуры отладки
- mysqli_dump_debug_info() - Журналирование отладочной информации
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Расширения для работы с базами данных отдельных производителей
- MySQL Drivers and Plugins
- Улучшенный модуль MySQL
- mysqli_bind_param
- mysqli_bind_result
- mysqli_client_encoding
- mysqli_connect
- mysqli::disable_reads_from_master
- mysqli_disable_rpl_parse
- mysqli_enable_reads_from_master
- mysqli_enable_rpl_parse
- mysqli_escape_string
- mysqli_execute
- mysqli_fetch
- mysqli_get_cache_stats
- mysqli_get_links_stats
- mysqli_get_metadata
- mysqli_master_query
- mysqli_param_count
- mysqli_report
- mysqli_rpl_parse_enabled
- mysqli_rpl_probe
- mysqli_send_long_data
- mysqli::set_opt
- mysqli_slave_query
Коментарии
It should be noted that all reports made by this function, are sent through an exception named 'mysqli_sql_exception' instead of a normal PHP warning.
Hint: If you use
mysqli_report(MYSQLI_REPORT_ALL ^ MYSQLI_REPORT_STRICT)
normal errors are generated instead of exceptions.
If you use your own DBException handling for example
<?php
if (!@real_connect(HOST, USERNAME, PASSWORD, NAME, PORT))
{
throw new DBException(connect_errno);
}
?>
Then turn off errors like this for php 8 >
<?php
mysqli_report(MYSQLI_REPORT_OFF);
?>