Heim >Datenbank >MySQL-Tutorial >Warum werden meine Emojis mit utf8mb4 nicht in meiner MySQL-Datenbank gespeichert?

Warum werden meine Emojis mit utf8mb4 nicht in meiner MySQL-Datenbank gespeichert?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-04 01:34:09363Durchsuche

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

MySQL utf8mb4: Beim Speichern von Emojis treten Fehler auf

Beim Versuch, Namen, die Emojis enthalten, mithilfe der utf8mb4-Kodierung in Ihrer MySQL-Datenbank zu speichern, treten Fehler auf. Das Problem ist auf Unterschiede in den datenbankspezifischen Variablen zwischen den globalen Einstellungen und Ihrer spezifischen Datenbank zurückzuführen.

Überprüfung der Datenbankkonfiguration

  1. Überprüfen Sie, ob die globalen Datenbankvariablen vorhanden sind werden mit dem auf „utf8mb4“ für „character_set“ und „utf8mb4_unicode_ci“ für „collation“ gesetzt Abfrage:
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
  1. Stellen Sie sicher, dass die oben genannten Variablen auch auf „utf8mb4“ bzw. „utf8mb4_unicode_ci“ gesetzt sind, indem Sie dieselbe Abfrage in phpMyAdmin verwenden.

my.cnf Konfiguration

Überprüfen Sie Ihre my.cnf-Datei, um sicherzustellen, dass die folgenden Einstellungen vorhanden sind:

[mysql]
default-character-set = utf8mb4

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

mysqli/PDO-Einstellungen

Wenn Wenn Sie eine Verbindung über mysqli/PDO herstellen, stellen Sie Folgendes ein Optionen:

$mysqli->set_charset('utf8mb4');

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

Mögliche Lösung

Ausführen der SQL-Anweisung „SET NAMES utf8mb4;“ Innerhalb einer MySQL-Sitzung werden die Client-, Verbindungs- und Ergebniszeichensätze auf utf8mb4 gesetzt, wodurch das Problem möglicherweise behoben wird.

Das obige ist der detaillierte Inhalt vonWarum werden meine Emojis mit utf8mb4 nicht in meiner MySQL-Datenbank gespeichert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn