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 Envoie une mysqli_sql_exception pour les erreurs plutôt que des warnings 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 ou FALSE si une erreur survient.
Historique
| Version | Description |
|---|---|
| 5.2.15 & 5.3.4 | Le rapport d'erreur se fait maintenant par requête et non plus par processus. |
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 pour mauvais index */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();
$mysqli->close();
?>
Voir aussi
- mysqli_driver::$report_mode
- mysqli_debug() - Effectue des actions de déboguage
- mysqli_dump_debug_info() - Écrit les informations de déboguage dans les logs
grepmaster
22-Mar-2009 05:51
Polarina
10-Nov-2007 03: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
05-Nov-2005 07: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)
