デフォルトの照合順序で構成されたMySQLデータベースがありますutf8mb4_general_ci
。次のクエリを使用してテキストに絵文字を含む行を挿入しようとすると
insert into tablename
(column1,column2,column3,column4,column5,column6,column7)
values
('273','3','Hdhdhdh��������hzhzhzzhjzj 我爱你 ❌',49,1,'2016-09-13 08:02:29','2016-09-13 08:02:29');
MySQLは次のエラーを発生させます
1366 行 1 の列 'comment' の文字列値が正しくありません: '\xF0\x9F\x98\x83\xF0\x9F...'
ベストアンサー1
1) データベース: データベースのデフォルトの照合順序を に変更しますutf8mb4
。
2) テーブル: テーブルの照合順序を に変更しますCHARACTER SET utf8mb4 COLLATE utf8mb4_bin
。
クエリ:
ALTER TABLE Tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
3) コード:
INSERT INTO tablename (column1, column2, column3, column4, column5, column6, column7)
VALUES ('273', '3', 'Hdhdhdh��������hzhzhzzhjzj 我爱你 ❌', 49, 1, '2016-09-13 08:02:29', '2016-09-13 08:02:29')
4)utf8mb4
データベース接続を設定します。
$database_connection = new mysqli($server, $user, $password, $database_name);
$database_connection->set_charset('utf8mb4');