MODX REVO количество символов в TV поле

Приветствую, пытаюсь сохранить большой JSON массив в TV поле с типом текстовая область, но массив сохраняется обрезанным, не полным, я так понимаю в TV поле ограниченное количество символов может хранить? Как это можно изменить?
Роман
10 июня 2023, 22:09
modx.pro
602
0

Комментарии: 16

Денис Усманов
10 июня 2023, 22:18
0
phpMyAdmin -> modx_site_tmplvar_contentvalues -> Структура -> value изменить
меняешь с MEDIUMTEXT на обычный TEXT

    Роман
    10 июня 2023, 22:50
    0
    Спасибо, но все равно сохраняет обрезанным, а у типа TEXT есть ограничения по количеству?
      Денис Усманов
      10 июня 2023, 22:51
      0
      В Длина/Значения укажите
        Роман
        10 июня 2023, 22:52
        0
        что указать?
          Денис Усманов
          10 июня 2023, 22:56
          0
          Нужную длину записываемых данных
            Роман
            11 июня 2023, 00:04
            0
            что бы я не указал, не сохраняется значение в этом поле, пишу 536870911 сохраняю, редактирую снова и вижу что поле пустое
              Александр Мельник
              11 июня 2023, 07:30
              0
              тоесть поведение изменилось? До этого вы вставляли длинную строку и говорили что она ОБРЕЗАЕТСЯ, а теперь вставляете короткую строку и пишите, что она НЕ СОХРАНЯЕТСЯ совсем?
              Выглядит странно, по идее Денис все верно сказал, нужно изменить тип поля value. На самом деле максимальную длину хранимых данных данных можно и не указывать, будет выделено 65 килобайт под каждое значение.
              По идее, вам и стандартного mediumtext должно было хватать, под него выделяет 16 миллионов символов, ну неужели ваш json был больше.
              Проверяйте ошибки в логах, как в браузере в момент сохранение, так может и логи на сервере.
              У меня родилась теория, что ваш json мог обрезаться не по причине длины строки, а по причине того что в его тексте встречался какой то запрещенный в sql символ, хотя это не поясняет ту ситуацию что вы описали в последнем коменте — не сохраняется даже простая строка «536870911»
                Александр Мельник
                11 июня 2023, 08:03
                0
                только сейчас «догнал» что под строкой «536870911» вы имели ввиду длину данных в sql, а не строку, которую вы пытаетесь сохранить в это поле.
                  Роман
                  11 июня 2023, 11:49
                  0
                  да, уже речь про поле в бд
    Dan
    Dan
    11 июня 2023, 08:49
    0
    А json у вас как формируется? Вы сами его составляете? Может в нем есть ошибки? Какая длина json?
      Роман
      11 июня 2023, 11:50
      0
      Руками сейчас вставляю.
        Dan
        Dan
        11 июня 2023, 14:23
        0
        а вы проверяли свой json на наличие ошибок?
          Роман
          11 июня 2023, 14:25
          0
          Нет, там отзывы, да могут быть спец символы всякие, люди вставляют смайлики, из за этого может быть обрыв?
            Александр Мельник
            11 июня 2023, 14:38
            0
            может. а смайлы чтобы хранить в базе данных, насколько я знаю, нужно еще и определенную кодировку устанавливать — utf8-mb4
            а у вас на скрине другая. Это тоже может быть причиной.
            Роман
            11 июня 2023, 14:38
            0
            Да, заметил что обрывает на слове «погода», а за словом погода идет иконка "… а лучше могла быть погода ?" Что можно сделать в таком случае? Другие иконки проходят.
        Роман
        11 июня 2023, 15:56
        0
        Проблема была не только в типе поля VARCHAR но и в эмодзи в тексте JSON массива, изменил тип поля на LONGTEXT и кодировку базы поменял на utf8mb4
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          16