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.
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.
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'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();
?>
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.
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.
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.