首頁 >資料庫 >mysql教程 >為什麼我的表情符號沒有使用 utf8mb4 保存在我的 MySQL 資料庫中?

為什麼我的表情符號沒有使用 utf8mb4 保存在我的 MySQL 資料庫中?

Patricia Arquette
Patricia Arquette原創
2024-12-04 01:34:09441瀏覽

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

MySQL utf8mb4:儲存表情符號時發生錯誤

嘗試使用utf8mb4 編碼將包含表情符號的名稱儲存到MySQL 資料庫時遇到錯誤。該問題源於全域設定和您的特定資料庫之間的資料庫特定變數之間的差異。

資料庫配置驗證

  1. 驗證全域資料庫變數使用下列指令將“character_set”設為“utf8mb4”,將“collat​​ion”設為“ utf8mb4_unicode_ci”查詢:
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
  1. 對於相關資料庫,請確保上述變數也分別設定為“utf8mb4”和“utf8mb4_unicode_ci”,在phpMyAdmin 中使用相同的查詢。

my.cnf配置

檢查您的my.cnf 檔案以確保存在以下設定:

[mysql]
default-character-set = utf8mb4

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

mysqli/PDO 設定

如果如果您透過mysqli/PDO 連接,請設定以下內容options:

$mysqli->set_charset('utf8mb4');

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

潛在解決方案

執行SQL 語句「SET NAMES utf8mb4;」在SQLSQL 會話中將客戶端、連接和結果字元集設定為utf8mb4,可能會解決此問題。

以上是為什麼我的表情符號沒有使用 utf8mb4 保存在我的 MySQL 資料庫中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn