Correction des erreurs « Valeur de chaîne incorrecte » dans MySQL
Arrière-plan :
Malgré la configuration du texte colonnes avec un jeu de caractères et un classement UTF-8, certaines adresses e-mail continuent de déclencher des erreurs « Valeur de chaîne incorrecte ». Cet article explore la cause sous-jacente de ces erreurs et propose des solutions.
Cause :
Le message d'erreur suggère que les adresses e-mail concernées contiennent des caractères non pris en charge par le caractère actuel. définir la configuration. Même si UTF-8 est généralement permissif, certaines séquences de caractères peuvent dépasser ses limites.
Solution :
Vérifier la connexion à la base de données : Après avoir établi une connexion MySQL, exécutez les instructions SQL suivantes :
SET NAMES 'utf8mb4'; SET CHARACTER SET utf8mb4;
Cela définit le jeu de caractères et classement pour la connexion actuelle à UTF-8 avec quatre octets par caractère (utf8mb4).
Vérifier le jeu de caractères du tableau : Pour les tableaux contenant les adresses e-mail concernées, exécutez la requête suivante pour vérifier le jeu de caractères :
SELECT `tables`.`TABLE_NAME`, `collations`.`character_set_name` FROM `information_schema`.`TABLES` AS `tables`, `information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations` WHERE `tables`.`table_schema` = DATABASE() AND `collations`.`collation_name` = `tables`.`table_collation` ;
Assurez-vous que le jeu de caractères est défini sur utf8mb4.
Vérifier les paramètres de la base de données : Exécutez les instructions MySQL suivantes pour vérifier le jeu de caractères global et les paramètres de classement :
mysql> show variables like '%colla%'; mysql> show variables like '%charac%';
Assurez-vous que le jeu de caractères et le classement sont définis sur utf8mb4.
Effets du correctif :
L'utilisation de utf8mb4 augmente la plage de caractères prise en charge et élimine les erreurs « Valeur de chaîne incorrecte » pour les adresses e-mail avec caractères étendus. Cela pourrait également améliorer la compatibilité de la base de données avec les données internationales et les futures normes Unicode.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!