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();
?>

Смотрите также

Коментарии

Be very careful using this function - it's a per-process setting.
If your server is set up to reuse a single PHP process for multiple requests, that means the last setting of this function in any script will affect all other scripts using mysqli.
To be safe always call <? mysqli_report(MYSQLI_REPORT_OFF?> at the end of a script. The CGI version of PHP is probably safe from this.

(Tested using PHP 5.0.5, Apache 2 SAPI module)
2005-11-05 21:23:04
http://php5.kiev.ua/manual/ru/function.mysqli-report.html
Автор:
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.
2007-11-10 17:08:28
http://php5.kiev.ua/manual/ru/function.mysqli-report.html
Автор:
Hint: If you use

mysqli_report(MYSQLI_REPORT_ALL ^ MYSQLI_REPORT_STRICT)

normal errors are generated instead of exceptions.
2009-03-22 19:51:00
http://php5.kiev.ua/manual/ru/function.mysqli-report.html
Автор:
Regarding Anthony's comment: 

Since 5.2.15 the report mode is per request, not per process anymore.

mysqli-driver.report-mode#refsect1-mysqli-driver.report-mode-changelog
2017-10-29 21:12:52
http://php5.kiev.ua/manual/ru/function.mysqli-report.html

    Поддержать сайт на родительском проекте КГБ