Heim >Datenbank >MySQL-Tutorial >Warum werden meine Emojis mit utf8mb4 nicht in meiner MySQL-Datenbank gespeichert?
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
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
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!