Сохранение эмодзи (emoji) в таблицах базы данных

Модератор
#
Сохранение эмодзи (emoji) в таблицах базы данных
Сохранение части эмодзи (4-х байтные символы unicode) в таблицах MySQL невозможно при использовании utf8, в этом случае в случае, если у вас MySQL 5.5.3 или старше необходимо:
1. Полям таблиц, в которых вы хотите хранить эмодзи, указать в качестве кодировки utf8mb4
2. В конфигурационный файл базы данных в используемую вами секцию внести явное указание кодировки соединения:
'charset' => 'utf8mb4',

3. Таблицам и полям указать CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci

Теперь сохранение эмодзи будет происходить корректно.
#
Re: Сохранение эмодзи (emoji) в таблицах базы данных
Такую полезную информацию, имхо, нужно бы помещать в раздел /documentation/, в подраздел /documentation/modules/core/database/
ARTatom
#
Re: Сохранение эмодзи (emoji) в таблицах базы данных
Запросы для изменения кодировки полей с визуальным редактором.

ALTER TABLE `documents` CHANGE `text` `text` MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;

ALTER TABLE `messages` CHANGE `text` `text` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;

ALTER TABLE `informationsystem_groups` CHANGE `name` `name` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;

ALTER TABLE `informationsystem_groups` CHANGE `description` `description` MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;

ALTER TABLE `informationsystem_items` CHANGE `name` `name` MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;

ALTER TABLE `informationsystem_items` CHANGE `description` `description` MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;

ALTER TABLE `informationsystem_items` CHANGE `text` `text` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;

ALTER TABLE `shop_groups` CHANGE `name` `name` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;

ALTER TABLE `shop_groups` CHANGE `description` `description` MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;

ALTER TABLE `shop_items` CHANGE `name` `name` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;

ALTER TABLE `shop_items` CHANGE `description` `description` MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;

ALTER TABLE `shop_items` CHANGE `text` `text` MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;
«Не выходи из комнаты, не совершай ошибку…»
Модератор
#
Re: Сохранение эмодзи (emoji) в таблицах базы данных
Теперь быстро поменять кодировку можно через модуль Производительность
Авторизация