mysqli_driver::$report_mode

mysqli_report

(PHP 5, PHP 7)

mysqli_driver::$report_mode -- mysqli_report Включает или отключает внутренние функции протоколирования

Описание

Объектно-ориентированный стиль

Процедурный стиль

bool mysqli_report ( int $flags )

Эта функция может оказаться полезной при выполнении запросов на этапе разработки и тестирования. В зависимости от установленных флагов, в протокол будут заноситься ошибки вызовов функций mysqli или сообщения о выполнении запросов не использующих индекс (или использующих неверный индекс).

Список параметров

flags

Поддерживаемые флаги
Имя Описание
MYSQLI_REPORT_OFF Отключить протоколирование
MYSQLI_REPORT_ERROR Заносить в протокол ошибки вызовов функций mysqli
MYSQLI_REPORT_STRICT Вместо сообщений об ошибках выбрасывать исключение mysqli_sql_exception
MYSQLI_REPORT_INDEX Заносить в протокол факты использования в запросах неверного индекса (или когда индекс не используется вообще)
MYSQLI_REPORT_ALL Включить все настройки (заносить в протокол все события)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия Описание
5.3.4 Изменен режим протоколирования. Если ранее режим задавался для процесса, то теперь он задается для каждого запроса.
5.2.15 Изменен режим протоколирования. Если ранее режим задавался для процесса, то теперь он задается для каждого запроса.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* Проверка соединения */
if (mysqli_connect_errno()) {
    
printf("Не удалось подключиться: %s\n"mysqli_connect_error());
    exit();
}

/* включение протоколирования */
$driver = new mysqli_driver();
$driver->report_mode MYSQLI_REPORT_ALL;

try {

    
/* этот запрос должен отчитаться об ошибке */
    
$result $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

    
/* этот запрос должен отчитаться об использовании неверного индекса */
    
$result $mysqli->query("SELECT Name FROM City WHERE population > 50000");

    
$result->close();

    
$mysqli->close();

} catch (
mysqli_sql_exception $e) {

    echo 
$e->__toString();
}
?>

Пример #2 Процедурный стиль

<?php
/* включение протоколирования */
mysqli_report(MYSQLI_REPORT_ALL);

$link mysqli_connect("localhost""my_user""my_password""world");

/* Проверка соединения */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %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");

mysqli_free_result($result);

mysqli_close($link);
?>

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

Коментарии

Seems not clear but flags *could be combined*, as per other flags.
For example:

<?php

# wannabe noticed about all errors except those about indexes
$driver = new mysqli_driver();
$driver->report_mode MYSQLI_REPORT_ALL & ~MYSQLI_REPORT_INDEX;

?>
2017-06-16 13:42:17
http://php5.kiev.ua/manual/ru/mysqli-driver.report-mode.html
As a recommendaton on memory management please don't use the objective way your creating an object to specify one property and thats all your doing with it, much more effective both for the parser and for memory to use the proccedual style for setting the report flag.
2020-09-09 18:26:12
http://php5.kiev.ua/manual/ru/mysqli-driver.report-mode.html

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