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

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

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

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

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

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

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

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

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

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

SMS - лохотроны

Февраль 4, 2011 г.

Довольно актуальны современные виды мошенничества, направленные на завладение средств с лицевого счета вашего сотового телефона. Для меня всегда было почему то ясно, что бесплатный сыр бывает только в мышеловке. Потому на рекламные сообщения с формулировкой, ...

Читать

Вариант XML карты сайта для Drupal 7

Ноябрь 8, 2016 г.

Сначала написал вариант для Drupal 6, но в силу актуальности семерки, предлагаю вариант кода для 7й версии. Описание вы найдете в прошлой статье, здесь обновлена только работа с базой данных. Привожу код класса и пример его вызова. Код класса: ...

Читать

Олимпиада для пятиклашек

Ноябрь 11, 2012 г.

Дочери (5й класс) на каникулы дали типа олимпиадки порешать. По математике. Ясно, что решают в итоге родители. Хорошо тем, кто в НИИ каком нить работает, или, может, профессорá, завалящиеся доценты с техническим уклоном имеются под рукой. А что делать ...

Читать

Магия чисел

Февраль 14, 2011 г.

Старшая дочь у меня уже ходит в 3й класс общеобразовательной средней школы. Склад ума у неё не лежит к точным наукам, но пока это не мешает ей приносить ...

Читать
 

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

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



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

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

  1. MaratMS:

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

  2. Omnius:

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