Maison >base de données >tutoriel mysql >Comment corriger les erreurs « Valeur de chaîne incorrecte » de MySQL dans UTF-8 ?

Comment corriger les erreurs « Valeur de chaîne incorrecte » de MySQL dans UTF-8 ?

DDD
DDDoriginal
2024-12-11 03:30:12862parcourir

How to Fix MySQL's

Comprendre les erreurs « Valeur de chaîne incorrecte » dans UTF-8

L'erreur « Valeur de chaîne incorrecte » dans MySQL se produit lorsque la base de données rencontre un valeur de chaîne non valide lors des opérations SQL. Cela peut être dû à plusieurs facteurs, notamment :

  • Encodage des données non conforme : les données insérées dans la base de données peuvent ne pas être conformes au jeu de caractères UTF-8 dans lequel elles sont censées se trouver.
  • Problèmes de connexion : la connexion à la base de données n'est peut-être pas correctement configurée pour gérer la transmission de données UTF-8.
  • Configuration de table incorrecte : la table de base de données peut avoir un jeu de caractères inapproprié ou un classement, ce qui l'empêche d'accepter les valeurs UTF-8.

Dépannage et résolution

Pour résoudre les erreurs de « valeur de chaîne incorrecte » et garantir un UTF- 8 manipulation, suivez ces étapes :

  • Vérifiez l'encodage des données : Assurez-vous que les données que vous insérez sont codées en UTF-8 à l'aide d'outils tels que les vérificateurs Unicode ou similaires.
  • Configurer la connexion à la base de données : Après vous être connecté à la base de données, exécutez les commandes suivantes pour définir l'UTF- Jeu de 8 caractères et classement :
SET NAMES 'utf8mb4';
SET CHARACTER SET utf8mb4;
  • Vérifiez la configuration de la table : Exécutez le requête SQL suivante pour vérifier que la table concernée possède le jeu de caractères « utf8mb4 » :
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`
;

Si le jeu de caractères n'est pas « utf8mb4 », modifiez la définition de la table pour l'inclure.

  • Vérifiez les paramètres de la base de données : Exécutez les commandes suivantes pour vous assurer que la configuration de la base de données est définie pour gérer Données UTF-8 :
mysql> show variables like '%colla%';
mysql> show variables like '%charac%';

Les résultats doivent inclure des paramètres tels que "character_set_database" et "collation_connection" définis sur "utf8mb4".

Impact des correctifs

L'application de ces correctifs permettra à la base de données de traiter correctement l'UTF-8 chaînes, résolvant les erreurs de « valeur de chaîne incorrecte ». Cependant, le passage à « utf8mb4 » peut avoir les effets suivants :

  • Cela prendra plus d'espace de stockage que « utf8mb3 ».
  • Certaines opérations SQL, telles que le tri et la recherche, peut devenir plus lent en raison de l'augmentation de la taille du jeu de caractères.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn