@Jamy_Iler

Как записать смайл в базу данных?

При помощи API получаю сообщение из ВК, и текст сообщения записываю в базу данных таким образом:
mysql_query("UPDATE `users` SET `content`='$info|$text|$attachment' WHERE `uid`=$uid");

Проблема. Если пользователь в сообщении использует смайл, то в поле `content` записывается строка содержащая $info, вертикальную черту и часть $text до момента где стоит смайл. Если смайлов нет то ничего не обрезается и все три переменные с разделителями записываются как надо.

Строку $text никак не экранирую предварительно. Пробовал, не помогло
  • Вопрос задан
  • 4627 просмотров
Решения вопроса 1
nazarpc
@nazarpc
Open Source enthusiast
Во-первых, НИКОГДА не делайте прямую подстановку данных в SQL запрос, это готовая SQL иньекция.
Для корректного сохранения нужно:
1) Правильно приготовить SQL запрос вместо указанной жести (а ещё вы используете устаревшую функцию mysql_query, в последней версии PHP она отсутствует совсем)
2) В БД нужно использовать кодировку utf8mb4 вместо просто utf8 (потому что эта не полноценная по факту), иначе верхний диапазон Unicode символов (смайлики, например) не будет поддерживаться так, как должен
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Lulzsec
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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