Правильная сериализация (serialize) перед сохранением в базу данных

А хотелось бы начать со слов — если ничего не получается, прочитайте наконец-то инструкцию. Функции serialize unserialize отлично работают в PHP, и чем дальше, тем лучше :). Тем не менее на форумах тут и там встречаются темы вроде — «А чем заменить сериализацию в PHP?» или «Сериализация своими руками..» (охота добавить при этом — «кривыми руками» или создать тему — «Сериализация через ж…»).

Как правило, проблемы возникают после извлечения сохраненных сериализованных данных из БД. Массивы не десериализуются, объекты не работают и прочая…

Что не так с объектами

Описание класса должно идти до того как вы выполните unserialize. Если нужно выполнить на этом этапе какие то действия над объектом — опишите в классе функцию __wakeup().

Что не так с базой данных

Типично, что при сохранении в бд текстовых полей (в зависимости от определения полей таблицы), вы теряете фигурные скобки, которые как раз появляются при сериализации массивов и объектов. Подготовьте данные следующим образом:

А после извлечения данных из БД восстановить массив нужно так:

Это самые типичные проблемы.

Мало букафф? Читайте есчо !

Эффект размытия blur средствами CSS

Декабрь 23, 2015 г.

В интернете много решений, я попробовал, наверное, все :) Основная проблема - не удаётся достичь кросс-браузерности. Как всегда, отличился IE. Для ...

Читать

Колонии Швеции

Март 1, 2014 г.

В конце 1637 год компания организовала свою первую экспедицию в Новый Свет. В ее подготовке участвовал один из управляющих Голландской Вест-Индской компании Самюэл Бломмарт, который пригласил на должность начальника экспедиции Петера Минуита — бывшего ...

Читать

Настроить Nginx для вывода php ошибок в браузер (а не только в log)

Апрель 7, 2022 г.

Это не является настройкой nginx, а управляется из конфигурации php-fpm. Настройте в файле php-fpm.conf (к примеру для 7.4 это /etc/php/7.4/fpm/php-fpm.conf): [crayon-69c86b350048e302920782/]

Читать

Русские глаголы, sql база

Март 15, 2017 г.

Здесь представлены две выборки, полученные из общей базы морфологии. "Нормализованная" выборка содержит инфинитивы глаголов, а вторая таблица - инфинитивы + словоформы. SQL скрипты размещены на github. Переходим, ищем файлы words-russian-verbs, ...

Читать
 

Комментарии к «Правильная сериализация (serialize) перед сохранением в базу данных»

Понравилась статья? Есть вопросы? - пишите в комментариях.



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

Много комментариев в “Правильная сериализация (serialize) перед сохранением в базу данных”

  1. MaratMS:

    А это сработает, если в массиве хранятся строки в UTF-8??

  2. Omnius:

    А какие ещё известны проблемы с unserialize?
    У меня всё равно эта функция возвращает false.