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;
?>
(PHP 5, PHP 7)
mysqli_driver::$report_mode -- 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
в случае возникновения ошибки.
Пример #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;
?>
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.