MySQL utf8mb4: Ralat Berlaku Semasa Menyimpan Emoji
Anda menghadapi ralat semasa cuba menyimpan nama yang mengandungi emoji ke pangkalan data MySQL anda menggunakan pengekodan utf8mb4. Isu ini berpunca daripada perbezaan dalam pembolehubah khusus pangkalan data antara tetapan global dan pangkalan data khusus anda.
Pengesahan Konfigurasi Pangkalan Data
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
my.cnf Konfigurasi
Periksa fail my.cnf anda untuk memastikan tetapan berikut hadir:
[mysql] default-character-set = utf8mb4 [mysqld] ... character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
Tetapan mysqli/PDO
Jika anda menyambung melalui mysqli/PDO, tetapkan perkara berikut pilihan:
$mysqli->set_charset('utf8mb4'); $dbh->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8mb4');
Potensi Penyelesaian
Melaksanakan pernyataan SQL "SET NAMES utf8mb4;" dalam sesi MySQL menetapkan set aksara klien, sambungan dan keputusan kepada utf8mb4, yang berpotensi menyelesaikan isu tersebut.
Atas ialah kandungan terperinci Mengapa Emoji Saya Tidak Menyimpan dalam Pangkalan Data MySQL Saya Menggunakan utf8mb4?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!