ホームページ > データベース > mysql チュートリアル > utf8mb4 を使用すると絵文字が MySQL データベースに保存されないのはなぜですか?

utf8mb4 を使用すると絵文字が MySQL データベースに保存されないのはなぜですか?

Patricia Arquette
リリース: 2024-12-04 01:34:09
オリジナル
412 人が閲覧しました

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」を設定します。 query:
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
ログイン後にコピー
  1. 関連するデータベースについては、phpMyAdmin 内で同じクエリを使用して、上記の変数もそれぞれ「utf8mb4」および「utf8mb4_unicode_ci」に設定されていることを確認します。

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経由で接続している場合は、次のように設定しますオプション:

$mysqli->set_charset('utf8mb4');

$dbh->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8mb4');
ログイン後にコピー

考えられる解決策

SQL ステートメント「SET NAMES utf8mb4;」を実行します。 MySQL セッション内でクライアント、接続、および結果の文字セットを utf8mb4 に設定すると、問題が解決される可能性があります。

以上がutf8mb4 を使用すると絵文字が MySQL データベースに保存されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート