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

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

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

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

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

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

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

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

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

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

Проблемы при установке therubyracer

Сентябрь 9, 2018 г.

Если после команды [crayon-69513a4966944604486917/] Вы видите что то вроде: [crayon-69513a4966958647828323/] Возможно вам поможет следующий алгоритм установки. therubyracer потребовался мне для работы lessc, потому я стал искать решение, как ...

Читать

Переключение страниц в приложении C# Xamarin (Android)

Июль 4, 2022 г.

Даже самое простое приложение содержит несколько страниц. Минимально - это основная страница и страница с настройками. В данной статье я покажу пример как реализовать переключение между страницами с помощью класса NavigationPage. Цикл статей по Xamarin ...

Читать

Календарь лунных фаз

Март 2, 2016 г.

Календарь лунных фаз на любой день от 1000 г. н.э. до 9999 г. н.э. Помимо расчета фаз луны, которые вы можете рассчитать на любой день, я попрактиковался ...

Читать

Пишем DLL на Delphi

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

Это не гайд по созданию библиотек функций на Delphi. Я предлагаю готовый каркас, с которого удобно начать написание. Если вы не пишите каждый день новую ...

Читать
 

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

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



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

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

  1. MaratMS:

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

  2. Omnius:

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