(PHP 5, PHP 7)
mysqli_driver::$report_mode -- mysqli_report — Active ou désactive les fonctions de rapport interne
Style orienté objet
Style procédural
Fonction utile pour améliorer les requêtes durant le développement du code ainsi que lors des tests. Suivant les drapeaux fournis, elle rapporte les erreurs depuis les appels aux fonctions MySQLi, ou depuis les requêtes qui n'utilisent pas d'index (ou utilise un mauvais index).
flags
Nom | Description |
---|---|
MYSQLI_REPORT_OFF |
Désactive les rapports |
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) |
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Version | Description |
---|---|
5.3.4 | Modification du mode de reporting : il est maintenant pour chaque requête, plutôt que pour chaque processus. |
5.2.15 | Modification du mode de reporting : il est maintenant pour chaque requête, plutôt que pour chaque processus. |
Exemple #1 Style orienté objet
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Echec de la connexion : %s\n", mysqli_connect_error());
exit();
}
/* Activation du reporting */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;
try {
/* 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 */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();
$mysqli->close();
} catch (mysqli_sql_exception $e) {
echo $e->__toString();
}
?>
Exemple #2 Style procédural
<?php
/* Activation du reporting */
mysqli_report(MYSQLI_REPORT_ALL);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Echec de la connexion : %s\n", mysqli_connect_error());
exit();
}
/* 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 */
$result = mysqli_query("SELECT Name FROM City WHERE population > 50000");
mysqli_free_result($result);
mysqli_close($link);
?>