MySQL の「不正な文字列値」エラーの修正
背景:
テキストの構成にもかかわらずUTF-8 文字セットと照合順序を使用する列では、特定の電子メール アドレスは引き続き「文字列値が正しくありません」エラーを引き起こします。この記事では、これらのエラーの根本的な原因を調査し、解決策を示します。
原因:
エラー メッセージは、影響を受ける電子メール アドレスに現在の文字でサポートされていない文字が含まれていることを示唆しています。構成を設定します。 UTF-8 は一般に許容的ですが、一部の文字シーケンスはその制限を超える場合があります。
解決策:
データベース接続の確認: MySQL 接続を確立した後、次の SQL ステートメントを実行します:
SET NAMES 'utf8mb4'; SET CHARACTER SET utf8mb4;
これにより、文字セットとUTF-8 への現在の接続の照合順序 (1 文字あたり 4 バイト) (utf8mb4).
テーブルの文字セットを確認します: 影響を受ける電子メール アドレスを含むテーブルについて、次のクエリを実行して文字セットを確認します:
SELECT `tables`.`TABLE_NAME`, `collations`.`character_set_name` FROM `information_schema`.`TABLES` AS `tables`, `information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations` WHERE `tables`.`table_schema` = DATABASE() AND `collations`.`collation_name` = `tables`.`table_collation` ;
文字セットが次のように設定されていることを確認してください。 utf8mb4.
データベース設定を確認します: 次の MySQL ステートメントを実行して、グローバル文字セットと照合順序の設定を確認します:
mysql> show variables like '%colla%'; mysql> show variables like '%charac%';
次のことを確認します。文字セットと照合順序の両方が次のように設定されていますutf8mb4.
修正の影響:
utf8mb4 を使用すると、サポートされる文字範囲が広がり、次の電子メール アドレスに対する「文字列値が正しくありません」エラーが解消されます。拡張文字。また、データベースと国際データおよび将来の Unicode 標準との互換性も向上する可能性があります。
以上がUTF-8 MySQL データベースで依然として「不正な文字列値」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。