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 ?
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
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
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!