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

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

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

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

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

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

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

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

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

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

Трудо-выебудни

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

В пять утра разбудила кошка, и дальше не спалось. Сел за компьютер, вновь пытаясь понять, что же вчера приключилось с сайтом одного из моих клиентов. Этот сайт - памятник очумелым ручкам безымянных самоделкиных. Не люблю ковыряться в такого рода ...

Читать

Убираем рекламу в конструкторе JimDo

Апрель 3, 2013 г.

Отличный конструктор, но в бесплатной версии JimDo показывают рекламу. Давайте посмотрим сложно ли избавиться от неё. Конструктор рассчитан, прежде ...

Читать

Удаление неиспользуемых файлов в Drupal

Октябрь 17, 2024 г.

Особенно полезно, когда вы использовали проект как шаблон для другого сайта и надо почистить данные. Друпал хоть и показывает статистику использования файлов, но удалять файлы не позволяет из реестра /admin/content/files. Напишем небольшой скрипт, ...

Читать

В жаркой-жаркой Африке... или африканские письма счастья

Октябрь 29, 2016 г.

Где то в Африке есть такая страна Того. Затесалась она между Ганой и Бенином. Население занимается в основном сельским хозяйством, выращивают хлопок, ...

Читать
 

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

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



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

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

  1. MaratMS:

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

  2. Omnius:

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