PHP 8.1.28 Released!

mysqli_driver::$report_mode

mysqli_report

(PHP 5, PHP 7, PHP 8)

mysqli_driver::$report_mode -- mysqli_reportDéfinit le mode du rapport d'erreur mysqli

Description

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.

Liste de paramètres

flags

Drapeaux supportés
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)

Valeurs de retour

Retourne true.

Historique

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.

Exemples

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());
}

Voir aussi

add a note

User Contributed Notes 2 notes

up
6
nineoclick (atsymbol) gmail (dot) com
6 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;

?>
up
-3
welfordmartin at gmail dot com
3 years ago
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.
To Top