mysqli_driver::$report_mode

mysqli_report

(PHP 5, PHP 7)

mysqli_driver::$report_mode -- mysqli_reportActive ou désactive les fonctions de rapport interne

Description

Style orienté objet

Style procédural

mysqli_report ( int $flags ) : bool

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).

Liste de paramètres

flags

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

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

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.

Exemples

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);
?>

Voir aussi