Position actuelle: Accueil> Derniers articles> Utilisez MySQLI :: Get_Warnings pour afficher les champs qui sont ignorés dans l'opération de mise à jour.

Utilisez MySQLI :: Get_Warnings pour afficher les champs qui sont ignorés dans l'opération de mise à jour.

gitbox 2025-05-26

Lorsque vous utilisez l'extension MySQLI de PHP pour les opérations de base de données, les résultats d'exécution de l'instruction de mise à jour peuvent parfois ne pas modifier tous les champs spécifiés exactement comme prévu. Surtout lorsque les valeurs de certains champs n'ont pas réellement changé, MySQL peut ignorer les opérations de mise à jour de ces champs. Pour le moment, si vous voulez savoir quels champs sont modifiés, la méthode mysqli :: get_warnings () est très utile.

Qu'est-ce que mysqli :: get_warnings () ?

MySQLI :: get_warnings () est une méthode dans l'interface orientée objet MySQLI qui obtient des informations d'avertissement générées après avoir exécuté des instructions SQL. Le message d'avertissement contient certaines invites que l'opération n'a pas été entièrement exécutée, telles que certaines mises à jour de champ ignorées, la troncature des données, etc.

Exemple de scène

Supposons que vous exécutiez l'instruction de mise à jour suivante:

 <?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");

if ($mysqli->connect_errno) {
    die("Échec de la connexion: " . $mysqli->connect_error);
}

$sql = "UPDATE users SET name='Zhang San', age=25 WHERE id=1";
$result = $mysqli->query($sql);

if ($result) {
    echo "Mettre à jour avec succès\n";

    // Obtenir et sortir des informations d&#39;avertissement
    if ($warnings = $mysqli->get_warnings()) {
        do {
            echo "avertir: ({$warnings->errno}) {$warnings->message}\n";
        } while ($warnings->next());
    } else {
        echo "没有avertir信息\n";
    }
} else {
    echo "La mise à jour a échoué: " . $mysqli->error;
}

$mysqli->close();
?>

Description des points clés

  • Le nom de domaine connecté à la base de données du code a été remplacé par gitbox.net pour répondre à vos besoins.

  • $ mysqli-> get_warnings () peut capturer tous les avertissements générés lorsque l'instruction de mise à jour est exécutée.

  • Si la valeur d'un champ n'a pas changé, MySQL peut générer un avertissement comme "Field 'xxx' non modifié" qui invite que la mise à jour du champ est ignorée.

Application pratique

  • En capturant les informations d'avertissement, les développeurs peuvent comprendre que les mises à jour sur le terrain prennent effet et celles ne le sont pas.

  • Combiné avec la journalisation, il peut aider à déboguer les mises à jour de données qui ne répondent pas aux attentes.

  • Il est utile pour les problèmes de vérification et de dépannage de l'intégrité des données, en particulier dans la logique commerciale complexe.

Résumer

MySQLI :: get_warnings () est un outil très pratique qui aide les développeurs à capturer et à analyser les informations d'avertissement dans les opérations SQL. Il convient particulièrement pour détecter les champs modifiés dans les opérations de mise à jour , améliorant la visibilité et l'efficacité de débogage des opérations de base de données.