ホームページ >データベース >mysql チュートリアル >utf8mb4 を使用すると絵文字が MySQL データベースに保存されないのはなぜですか?
MySQL utf8mb4: 絵文字の保存中にエラーが発生しました
utf8mb4 エンコーディングを使用して絵文字を含む名前を MySQL データベースに保存しようとすると、エラーが発生します。この問題は、グローバル設定と特定のデータベースの間のデータベース固有の変数の違いに起因します。
データベース構成の検証
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
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 サイトの他の関連記事を参照してください。