MODX REVO количество символов в TV поле
Приветствую, пытаюсь сохранить большой JSON массив в TV поле с типом текстовая область, но массив сохраняется обрезанным, не полным, я так понимаю в TV поле ограниченное количество символов может хранить? Как это можно изменить?
Комментарии: 16
Спасибо, но все равно сохраняет обрезанным, а у типа TEXT есть ограничения по количеству?
В Длина/Значения укажите
что указать?
Нужную длину записываемых данных
что бы я не указал, не сохраняется значение в этом поле, пишу 536870911 сохраняю, редактирую снова и вижу что поле пустое
тоесть поведение изменилось? До этого вы вставляли длинную строку и говорили что она ОБРЕЗАЕТСЯ, а теперь вставляете короткую строку и пишите, что она НЕ СОХРАНЯЕТСЯ совсем?
Выглядит странно, по идее Денис все верно сказал, нужно изменить тип поля value. На самом деле максимальную длину хранимых данных данных можно и не указывать, будет выделено 65 килобайт под каждое значение.
По идее, вам и стандартного mediumtext должно было хватать, под него выделяет 16 миллионов символов, ну неужели ваш json был больше.
Проверяйте ошибки в логах, как в браузере в момент сохранение, так может и логи на сервере.
У меня родилась теория, что ваш json мог обрезаться не по причине длины строки, а по причине того что в его тексте встречался какой то запрещенный в sql символ, хотя это не поясняет ту ситуацию что вы описали в последнем коменте — не сохраняется даже простая строка «536870911»
Выглядит странно, по идее Денис все верно сказал, нужно изменить тип поля value. На самом деле максимальную длину хранимых данных данных можно и не указывать, будет выделено 65 килобайт под каждое значение.
По идее, вам и стандартного mediumtext должно было хватать, под него выделяет 16 миллионов символов, ну неужели ваш json был больше.
Проверяйте ошибки в логах, как в браузере в момент сохранение, так может и логи на сервере.
У меня родилась теория, что ваш json мог обрезаться не по причине длины строки, а по причине того что в его тексте встречался какой то запрещенный в sql символ, хотя это не поясняет ту ситуацию что вы описали в последнем коменте — не сохраняется даже простая строка «536870911»
только сейчас «догнал» что под строкой «536870911» вы имели ввиду длину данных в sql, а не строку, которую вы пытаетесь сохранить в это поле.
да, уже речь про поле в бд
А json у вас как формируется? Вы сами его составляете? Может в нем есть ошибки? Какая длина json?
Руками сейчас вставляю.
а вы проверяли свой json на наличие ошибок?
Нет, там отзывы, да могут быть спец символы всякие, люди вставляют смайлики, из за этого может быть обрыв?
может. а смайлы чтобы хранить в базе данных, насколько я знаю, нужно еще и определенную кодировку устанавливать — utf8-mb4
а у вас на скрине другая. Это тоже может быть причиной.
а у вас на скрине другая. Это тоже может быть причиной.
Да, заметил что обрывает на слове «погода», а за словом погода идет иконка "… а лучше могла быть погода ?" Что можно сделать в таком случае? Другие иконки проходят.
Проблема была не только в типе поля VARCHAR но и в эмодзи в тексте JSON массива, изменил тип поля на LONGTEXT и кодировку базы поменял на utf8mb4
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.