Comment afficher les erreurs mysqli_query
P粉713846879
P粉713846879 2023-09-01 13:52:57
0
1
572
<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粉713846879
P粉713846879

répondre à tous(1)
P粉538462187

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()
        ));
    }
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal