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

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

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

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

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

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

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

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

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

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

Захват контекста приложения в android/kotlin

Март 5, 2023 г.

Иногда в пользовательском классе требуется получить доступ к контексту приложения. Можно использовать метод внедрения зависимостей, но именно для этой задачи мне нравится подход с использованием статического хранилища. Идея заключается в том, ...

Читать

Кот, пёс и я - обо всем около домашнего питомца

Август 25, 2016 г.

Портал - это звучит гордо, но скорее сайт можно назвать интернет-журналом. Я привлекался к проекту для "лечения" кое каких косяков и актуализации шаблонов. ...

Читать

Как активировать блочный редактор для пользовательского типа контента в WP

Июнь 6, 2021 г.

Wordpress v5.x вводит новую реализацию подхода в редактировании контента - а именно блочный редактор с кодовым именем Gutenberg. Проблема в том, как активировать данный функционал для кастомного типа публикации. Документацию модульного редактора ...

Читать

Игровая механика "Свирепый бой" "вКонтакте"

Март 15, 2010 г.

Добравшись до 22 го уровня "Свирепый бой", хочу поделиться секретами игры с теми, кто только решил поиграть. Удивительно ненавязчивая игрушка, в которой ...

Читать
 

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

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



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

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

  1. MaratMS:

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

  2. Omnius:

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