Задать вопрос
Q0Q
@Q0Q
Дизайнер, верстальщик, в душе поэт

Почему при записи в бд php/mysql текста из textarea строка записывается не до конца?

У меня был код, где строка $string записывалась в бд. POST[curator_responce] — из textatea.
$curator_responce['text'] = $_POST['curator_responce'];
$curator_responce['audio'] = $_POST['audio_responce'];
$curator_responce['video'] = $_POST['video_url'];
$string = json_encode($curator_responce, JSON_UNESCAPED_UNICODE);


Иногда вместо
{"text":"пример текста","audio":"audio","video":"video"}

В бд оказывалось:
{"text":"начало строки и все

Ошибка наблюдалась не у меня, а у других пользователей сайта.
Я думаю, что ошибка в кавычках или каких-то символах. Я изменил код:
$curator_responce['text'] = addslashes(nl2br(htmlspecialchars(trim($_POST['curator_responce']))));
$curator_responce['audio'] = $_POST['audio_responce'];
$curator_responce['video'] = $_POST['video_url'];
$string = json_encode($curator_responce, JSON_UNESCAPED_UNICODE);


И не знаю, поможет или нет?
Не знаю, как протестировать работу, и как отследить ту ошибку, которая была.
Решил ли я проблему?

UPD:
Запрос в бд:
$result_homework = mysqli_query($db, "UPDATE `homeworks` SET `feedback` = '$string', `status` = '2' WHERE `homeworks`.`id` = '$homework_id'");

структура бд:
5e92d7ab5ffc5191889453.png
  • Вопрос задан
  • 161 просмотр
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
coderisimo
@coderisimo
Измените тип/длину строки в БД. Например установите TINYTEXT - (поместится до 255 знаков )
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
1) Реальной причины вы так и не нашли? Первым делом я бы все же нашел строку на которой режет запись, а потом уже думал что делать. Ну и пробовал запросы с ней руками пробить.
2) Реалэкейп все таки не лучший выход, использование подготовленных выражений уже давно стандарт для работы с бд. Это позволяет не придумывать велосипеды и работать с базой более свободно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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