Maison >base de données >tutoriel mysql >Pourquoi mes emojis ne sont-ils pas enregistrés dans ma base de données MySQL à l'aide de utf8mb4 ?

Pourquoi mes emojis ne sont-ils pas enregistrés dans ma base de données MySQL à l'aide de utf8mb4 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-04 01:34:09412parcourir

Why Are My Emojis Not Saving in My MySQL Database Using utf8mb4?

MySQL utf8mb4 : des erreurs se produisent lors du stockage des émojis

Vous rencontrez des erreurs lorsque vous tentez d'enregistrer des noms contenant des émojis dans votre base de données MySQL à l'aide de l'encodage utf8mb4. Le problème provient des différences dans les variables spécifiques à la base de données entre les paramètres globaux et votre base de données spécifique.

Vérification de la configuration de la base de données

  1. Vérifiez que les variables globales de la base de données sont définis sur "utf8mb4" pour "character_set" et "utf8mb4_unicode_ci" pour "collation" en utilisant le requête :
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
  1. Pour la base de données concernée, assurez-vous que les variables ci-dessus sont également définies sur "utf8mb4" et "utf8mb4_unicode_ci", respectivement, en utilisant la même requête dans phpMyAdmin.

mon.cnf Configuration

Inspectez votre fichier my.cnf pour vous assurer que les paramètres suivants sont présents :

[mysql]
default-character-set = utf8mb4

[mysqld]
...
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

Paramètres mysqli/PDO

Si vous vous connectez via mysqli/PDO, définissez ce qui suit options :

$mysqli->set_charset('utf8mb4');

$dbh->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8mb4');

Solution potentielle

Exécution de l'instruction SQL "SET NAMES utf8mb4;" au sein d'une session MySQL, définit les jeux de caractères du client, de la connexion et des résultats sur utf8mb4, résolvant potentiellement le problème.

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