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

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

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

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

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

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

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

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

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

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

Как в Delphi записать в файл

Октябрь 16, 2015 г.

Это можно сказать хрестоматийная задача. Как мы это делали ещё в школе на Турбо Паскале (Turbo Pascal), так это до сих пор работает в Delphi. Конечно же похожие примеры можно найти в сети, но Интернет - большой, а хороших примеров мало. Потому я время ...

Читать

Налоговая декларация для УСН (упрощенки) за 2015 г.

Март 13, 2016 г.

В этому году налоговая не стала выпускать новый бланк декларации. Я был удивлен тем, как им удалось отступить от своей привычки и не создать новую бумажку. Но в связи с событиями в Крыме, созданием там свободной экономической зоны и т.п., был подготовлен ...

Читать

Обновление Alpha Cache до 1.1.005

Февраль 6, 2016 г.

Разобрался как добавлять к своим плагинам иконки и картинки в описаниях на wordpress.org. Замостырил вот такой баннер для Альфа-Кеша. Но обновление, конечно, ...

Читать

Подключить скрипт / библиотеку в шаблоне twig

Ноябрь 5, 2023 г.

Подключение скрипта или стилей "по-месту", на мой взгляд, не плохая практика, т.к. соответствующие файлы не будут подключаться, если в них нет необходимости. От вас потребуется объявить нужный скрипт и/или стили как библиотеку. Это можно сделать ...

Читать
 

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

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



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

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

  1. MaratMS:

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

  2. Omnius:

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