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

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

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

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

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

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

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

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

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

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

Автомасштабирование изображений

Сентябрь 16, 2015 г.

Сейчас очень модными стали адаптивные версии дизайна, которые умеют подстраиваются под размер экрана устройства, на котором открыли сайт. Столбцы (сайдбары, ...

Читать

Переезд сайта на https глазами Яндекс

Август 6, 2017 г.

Ранее я описывал план действий по переезду сайта на https. Все пункты я применил на shra.ru, моём подопытном блоге. С момента установки в панели вебмастера ...

Читать

Время захода и восхода солнца на любой день

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

Предлагаю узнать время восхода и захода солнца для произвольного дня года. По умолчанию, данные приведены для Екатеринбурга. В форме ниже нужно ввести дату, географические координаты, разницу в часах локального времени (LT) от универсального (UT). ...

Читать

Активируем переводчик в скайпе

Сентябрь 23, 2017 г.

Где то глубоко в недрах скайп запрятан тайный сервис-переводов. Посмотрим на что он способен и как его активировать. Включаем переводчик в скайпе ...

Читать
 

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

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



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

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

  1. MaratMS:

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

  2. Omnius:

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