私が挿入し、私はこのようなエラーメッセージを取得していますMySQLをやろうとしています:MySQLテーブルに特定の文字を挿入できないのはなぜですか?
Incorrect string value: '\xA0' for column 'foo' at row 1
これは\xA0
と\x96
の両方で発生します。
私はPHPを使用していますが、私はmysqli_query()
にこのクエリを渡しています:
INSERT INTO ttest1 (foo) VALUES("test\xA0")
ここで作成するテーブルがあります:ここでは
CREATE TABLE ttest1 ( test_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, foo VARCHAR(32))
は、MySQLの文字セットと照合情報です:
character_set_client utf8mb4 character_set_connection utf8mb4 character_set_database utf8 character_set_filesystem binary character_set_results utf8mb4 character_set_server utf8 character_set_system utf8 collation_connection utf8mb4_unicode_ci collation_database utf8_general_ci collation_server utf8_general_ci
襟foo
列のイオンはuft8_general_ciです。
このセットアップでこのエラーが発生するのはなぜですか?また、最善の解決策は何ですか?
テキストをutf8に切り替えることをお勧めします。しかし、できない場合は、接続を代わりに 'latin1'に切り替えてください。 –