mal1kov
@mal1kov
Притворись дураком 5 минут, чем быть им всю жизнь.

Почему PHP не принимает символы / ' ` и смайлики в строке input и textarea для записи в БД MySQL?

PHP не принимает символы / ' ` и смайлики в строке input и textarea при записи в БД MySQL

Мне нужно, чтобы это потом выводилось таким же образом как было написано, но почему-то данные не записываются.

Что можно сделать?
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Чтобы смайлы не вызывали ошибку надо выставить правильную кодировку
чтобы никакие символы не мешали запросу, все переменные надо передавать в БД отдельно от запроса

// правильно соединяемся
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli($host, $user, $pass, $db, $port);
$mysqli->set_charset("utf8mb4");
// правильно вставляем
$sql = "INSERT INTO users (name, email, password) VALUES (?,?,?)";
$stmt= $conn->prepare($sql);
$stmt->bind_param("sss", $name, $email, $password);
$stmt->execute();
Ответ написан
Комментировать
flapflapjack
@flapflapjack
на треть я прав
Чтобы смайлики записывались, поле в бд должно быть типа utf64mb, а чтобы спецсимволы писались, нужно перед записью их экранировать с помощью mysql_real_escape_string()
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы