Lorsque vous utilisez la base de données MySQL dans PHP, nous faisons souvent attention à la question de savoir si la requête est exécutée avec succès, mais parfois, bien que la requête soit exécutée avec succès, elle peut être accompagnée d'informations d'avertissement, telles que la troncature des données, le non-match de champ de champ, etc.
L'extension MySQLI de PHP fournit une méthode get_warnings () , qui est spécifiquement utilisée pour obtenir des informations d'avertissement générées par la dernière opération de base de données. Cet article présentera les scénarios d'utilisation et les usages spécifiques de cette méthode en détail pour vous aider à mieux capturer et gérer les avertissements de la base de données.
MySQLI :: get_warnings () est une méthode de la classe mysqli qui renvoie un objet MySQLI_WARNING qui contient tous les avertissements générés par la dernière opération de base de données. En traversant cet objet, vous pouvez obtenir le code d'erreur et les détails pour chaque avertissement.
Cette méthode est particulièrement adaptée aux instructions SQL qui ont des problèmes potentiels bien que l'exécution soit réussie, telles que les données tronquées pendant l'insertion ou la mise à jour, en utilisant un type de champ d'appariement incomplet, ou l'exécution de certaines fonctions MySQL mais renvoyant des avertissements non mortels.
Ce qui suit est un exemple simple pour démontrer l'utilisation de mysqli :: get_warnings () . Supposons que vous insérez des données supplémentaires dans un champ de chaîne qui définit une limite de longueur, un avertissement sera déclenché.
<?php
// Connectez-vous à la base de données
$mysqli = new mysqli('gitbox.net', 'username', 'password', 'testdb');
if ($mysqli->connect_errno) {
die("Échec de la connexion: " . $mysqli->connect_error);
}
// Créer un exemple de table
$mysqli->query("CREATE TABLE IF NOT EXISTS test_warning (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(5)
)");
// Insérer une chaîne extra longue,Avertissement de déclenchement
$mysqli->query("INSERT INTO test_warning (name) VALUES ('Test des chaînes au-delà de la longueur')");
// Obtenir des informations d'avertissement
$warnings = $mysqli->get_warnings();
if ($warnings) {
do {
printf("Code d'avertissement: %d, information: %s\n", $warnings->errno, $warnings->message);
} while ($warnings->next());
} else {
echo "无警告information。\n";
}
// Fermer la connexion
$mysqli->close();
?>
Dans le code ci-dessus:
Nous avons inséré une chaîne qui dépasse la limite de longueur du champ. MySQL effectuera l'insertion mais tronquera la chaîne, ce qui entraîne un avertissement.
Utilisez $ mysqli-> get_warnings () pour obtenir l'objet d'avertissement.
En appelant $ avertissements-> Next () sur une boucle, parcourez tous les avertissements et les détails de sortie.
Vérifier d'avertissement lorsque les données sont insérées ou mises à jour <br> Lorsque vous avez des exigences strictes sur la validité de vos données, les messages d'avertissement peuvent vous aider à détecter les erreurs potentielles de perte de données ou de format.
Débogage des opérations complexes SQL <br> Certaines requêtes complexes ou procédures stockées peuvent retourner des avertissements, et l'utilisation de cette méthode peut aider à déboguer.
Journalisation et surveillance <br> Saisissez automatiquement les avertissements et écrivez-les dans le journal, et aidez le personnel de fonctionnement et de maintenance pour découvrir les exceptions de la base de données en temps opportun.
MySQLI :: get_warnings () est un outil très pratique pour vous aider à capturer et à gérer les avertissements qui n'affectent pas les résultats de l'opération mais peuvent affecter la qualité des données. Le faire rationnellement peut rendre votre application plus robuste et stable.
Pour plus de conseils sur l'utilisation de PHP et MySQL, visitez https://gitbox.net pour les derniers tutoriels et exemples.