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, PHP 8)
mysqli_driver::$report_mode -- mysqli_report — Define o modo de relatório de erros do mysqli
Estilo orientado a objetos
Estilo procedural
Dependendo das flags, ele define o modo de relatório de erros do mysqli como exceção, aviso ou nenhum.
Quando definido como MYSQLI_REPORT_ALL
ou MYSQLI_REPORT_INDEX
,
ele também informará sobre as consultas que não usam um índice (ou usam um índice incorreto).
A partir do PHP 8.1.0, a configuração padrão é MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT
.
Anteriormente, era MYSQLI_REPORT_OFF
.
flags
Nome | Descrição |
---|---|
MYSQLI_REPORT_OFF |
Desativa os relatórios |
MYSQLI_REPORT_ERROR |
Relatar erros de chamadas de função mysqli |
MYSQLI_REPORT_STRICT |
Lance mysqli_sql_exception para erros em vez de avisos |
MYSQLI_REPORT_INDEX |
Informa se nenhum índice ou índice inválido foi usado em uma consulta |
MYSQLI_REPORT_ALL |
Define todas as opções (relatar tudo) |
Retorna true
.
Versão | Descrição |
---|---|
8.1.0 |
O valor padrão agora é MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT .
Anteriormente, era MYSQLI_REPORT_OFF .
|
Exemplo #1 Estilo orientado a objetos
<?php
/* ativar relatórios */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;
try {
/* se a conexão falhar, um mysqli_sql_exception será lançado */
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");
/* esta consulta deve relatar um erro */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* esta consulta deve relatar um índice ruim se a população da coluna não tiver um índice */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}
Exemplo #2 Estilo procedural
<?php
/* ativar relatórios */
mysqli_report(MYSQLI_REPORT_ALL);
try {
/* se a conexão falhar, um mysqli_sql_exception será lançado */
$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");
/* esta consulta deve relatar um erro */
$result = mysqli_query($link, "SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* esta consulta deve relatar um índice ruim se a população da coluna não tiver um índice */
$result = mysqli_query($link, "SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}
Exemplo #3 Relatório de erros, exceto erros de índice ruim
<?php
/* ativar relatórios */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
/* se a conexão falhar, um mysqli_sql_exception será lançado */
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");
/* esta consulta deve relatar um erro */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* isso NÃO relatará nenhum erro, mesmo que o índice não esteja disponível */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}
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.