Maison  >  Questions et réponses  >  le corps du texte

Comment afficher les erreurs mysqli_query

<p>J'essaie d'afficher une mysqli_error dans mon script php et je continue de recevoir une page noire si la requête échoue mais renvoie une réponse en cas de succès et si la requête échoue à la fois mysqli_error($conn) et mysqli_errno($conn) Affiche juste une page noire. Ceci est mon script de connexion à la base de données</p> <pre class="brush:php;toolbar:false;"><?php $ser = "tester" ; $utilisateur = "test" ; $pass = "test" ; $db="test"; $conn = mysqli_connect($ser, $user, $pass, $db); si ($conn) { die("Échec de la connexion : " . mysqli_connect_error()); } ?>≪/pré> <p>Ma requête PHP</p> <pre class="brush:php;toolbar:false;"><?php inclure « conn.php » ; si ($conn) { $sql = "INSERT INTO tbl_users (userId, email, pass) VALUES ("$userId", "$email", "$pass")"; si (mysqli_query($conn, $sql)) { echo json_encode(tableau( "statut" => "OK", "message" => "Succès", )); } autre { echo json_encode(tableau( "état" => "Erreur", "message" => erreur_mysqli($conn), )); } }</pré> <p>Si la requête s'exécute correctement, je peux obtenir une réponse réussie, mais si j'utilise <strong>ini_set('display_errors', 1);</strong> page vierge;< /strong> J'obtiens des erreurs de page entière mais j'ai juste besoin de mysqli_error ou de mysqli_errno. </p>
P粉713846879P粉713846879386 Il y a quelques jours479

répondre à tous(1)je répondrai

  • P粉538462187

    P粉5384621872023-09-02 11:56:45

    Depuis PHP 8.1, le paramètre par défaut pour le rapport d'erreurs mysqli est MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT, ce qui amène les erreurs à lever des exceptions au lieu de simplement renvoyer falsefalse.

    Si vous souhaitez vérifier les erreurs dans votre code au lieu d'obtenir des exceptions, utilisez

    mysqli_report(MYSQLI_REPORT_OFF);

    Une meilleure solution consiste à utiliser des gestionnaires d’exceptions.

    if ($conn) {
        $sql = "INSERT INTO tbl_users (userId, email, pass) VALUES ('$userId', '$email', '$pass')";
        try {
            mysqli_query($conn, $sql);
            echo json_encode(array(
                "status" => "Ok",
                "message" => "Success",
            ));
        catch (mysqli_sql_exception $e) {
            echo json_encode(array(
                "status" => "Error",
                "message" => $e->getMessage()
            ));
        }
    }

    répondre
    0
  • Annulerrépondre