Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Как сохранить emojy в utf8mb4


Автор: Poveritov 26.3.2018, 17:04
Не сохраняет эмодзи (к примеру) &#128144 в таблицу БД mysql.

К БД подключаюсь через PDO.
Код

$PDO = new PDO("mysql:host=localhost;dbname=mydb", 'mylogin', 'mypasswd',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"));  
     $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    return $PDO;


далее в строку передается текст с эмодзи
Код

$text    =    addslashes($post->text);


в таблице поле имеет типа utf8mb4 сравнение    utf8mb4_unicode_ci    

но запись сохраняется "как же здесь тепло и хорошо??#с8марта  " вместо &#128144

подскажите пожалуйста как исправить?

Автор: krundetz 2.4.2018, 17:31
Вообще странно.

Запрос подготавливается для вставки в БД или собирается из сырых данных?

Автор: Poveritov 23.4.2018, 12:41
Из сырых данные.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)