Hint: If you use
mysqli_report(MYSQLI_REPORT_ALL ^ MYSQLI_REPORT_STRICT)
normal errors are generated instead of exceptions.
mysqli_report
(PHP 5)
mysqli_report — Active ou désactive les fonctions de rapport interne
Description
bool mysqli_report
( int $flags
)
mysqli_report() est une fonction puissante, pour améliorer vos requêtes et votre code durant les phases de développement et de tests. En fonction de l'argument flags , il rapporte des erreurs liées aux appels de fonctions mysqli ou aux requêtes qui n'utilisent pas d'index (ou n'utilisent pas de bon index).
Liste de paramètres
- flags
-
Options supportées Nom Description MYSQLI_REPORT_OFF Désactive le rapport MYSQLI_REPORT_ERROR Rapporte les erreurs des fonctions mysqli MYSQLI_REPORT_STRICT Rapporte les alertes des appels aux fonctions mysqli MYSQLI_REPORT_INDEX Rapporte si un mauvais index ou pas d'index a été utilisé MYSQLI_REPORT_ALL Active toutes les options
Valeurs de retour
Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.
Exemples
Exemple #1 Style orienté objet
<?php
/* Active le rapport d'erreur mysqli */
mysqli_report(MYSQLI_REPORT_ALL);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}
/* Cette requête doit générer une erreur */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");
/* Cette requête doit générer une alerte */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();
$mysqli->close();
?>
Voir aussi
- mysqli_debug() - Effectue des actions de déboguage
- mysqli_dump_debug_info() - Écrit les informations de déboguage dans les logs
mysqli_report
grepmaster
23-Mar-2009 01:51
23-Mar-2009 01:51
Polarina
10-Nov-2007 11:08
10-Nov-2007 11:08
It should be noted that all reports made by this function, are sent through an exception named 'mysqli_sql_exception' instead of a normal PHP warning.
anthony dot parsons at manx dot net
06-Nov-2005 03:23
06-Nov-2005 03:23
Be very careful using this function - it's a per-process setting.
If your server is set up to reuse a single PHP process for multiple requests, that means the last setting of this function in any script will affect all other scripts using mysqli.
To be safe always call <? mysqli_report(MYSQLI_REPORT_OFF) ?> at the end of a script. The CGI version of PHP is probably safe from this.
(Tested using PHP 5.0.5, Apache 2 SAPI module)
