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 — Définit le mode du rapport d'erreur mysqli
Style orienté objet
Style procédural
En fonction des drapeaux, ceci définit le mode du rapport d'erreur de mysqli
à exception, avertissement, ou aucun.
Quand définit à MYSQLI_REPORT_ALL
ou MYSQLI_REPORT_INDEX
ceci va aussi informer à propos des requêtes qui n'utilisent pas d'index
(ou un mauvais index).
À partir de PHP 8.1.0, la valeur par défaut est MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT
.
Auparavant, il était MYSQLI_REPORT_OFF
.
flags
Nom | Description |
---|---|
MYSQLI_REPORT_OFF |
Désactive les rapports (valeur par défaut) |
MYSQLI_REPORT_ERROR |
Rapporte les erreurs depuis les appels aux fonctions mysqli |
MYSQLI_REPORT_STRICT |
Lance une exception mysqli_sql_exception pour les erreurs, au lieu d'émettre des alertes |
MYSQLI_REPORT_INDEX |
Rapporte si aucun index ou un mauvais index est utilisé dans une requête |
MYSQLI_REPORT_ALL |
Défini toutes les options (rapporte tout) |
Retourne true
.
Version | Description |
---|---|
8.1.0 |
La valeur par défaut est désormais MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT .
Auparavant, elle était MYSQLI_REPORT_OFF .
|
Exemple #1 Style orienté objet
<?php
/* Activation du rapport d'erreur */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;
try {
/* si la connexion échoue, une mysqli_sql_exception sera lancé */
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");
/* cette requête devrait rapporter une erreur */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* cette requête devrait rapporter un mauvais index, si la colonne population n'a pas d'index */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}
Exemple #2 Style procédural
<?php
/* Activation du rapport d'erreur */
mysqli_report(MYSQLI_REPORT_ALL);
try {
/* si la connexion échoue, une exception mysqli_sql_exception sera lancée */
$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");
/* cette requête devrait rapporter une erreur */
$result = mysqli_query($link, "SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* cette requête devrait rapporter un mauvais index, si la colonne population n'a pas d'index */
$result = mysqli_query($link, "SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}
Exemple #3 Rapport d'erreur à l'exception des erreurs de mauvais index
<?php
/* Activation du rapport d'erreur */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;
try {
/* si la connexion échoue, une mysqli_sql_exception sera lancé */
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");
/* cette requête devrait rapporter une erreur */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* ceci n'émettra PAS d'erreur même si aucun index est disponible */
$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.