mysqli_driver::$report_mode

mysqli_report

(PHP 5, PHP 7)

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

Описание

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

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

mysqli_report ( int $flags ) : bool

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

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

flags

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

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

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

Примеры

Пример #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);
?>

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

add a note add a note

User Contributed Notes 1 note

up
1
nineoclick (atsymbol) gmail (dot) com
3 years ago
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;

?>
To Top