@Soft_touch_plastic

Почему смайлики не записываются в базу данных?

Здравствуйте, пишу бота на php для телеграмм, некоторые данные из сообщения пользователя он должен записывать в базу. В сообщении присутствуют смайлики, как их правильно обрабатывать? У базы данных и у таблицы стоит сравнение utf8mb4_unicode_ci, которое по идее должно решать проблему, но оно ее не решает! Бегает это на openserver, вот ошибка:
Fatal error: Uncaught PDOException: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: '\xF0\x9F\x98\x8D",...' for column `music_bot`.`options`.`ads`
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
@Soft_touch_plastic Автор вопроса
Нашел решение! При подключении к базе данных также следует указать кодировку utf8mb4:
$dsn = "mysql:host=$host;dbname=$db;charset=utf8mb4";
$pdo = new PDO($dsn, $user, $password);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
dyuriev
@dyuriev
A posteriori
SQLSTATE[22007]: Invalid datetime format

И причем тут смайлики

В тексте ошибки все указано, ни добавить, ни убавить
Ответ написан
SagePtr
@SagePtr
Еда - это святое
У базы данных и у таблицы стоит сравнение utf8mb4_unicode_ci
У полей оно тоже должно стоять
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы