Сериализация Этого — Сохранение Объектов В Php

Создавая свой сайт «Небеса кроссвордов», я столкнулся с проблемой.

Я создал объект PHP под названием «кроссворд», но мне нужно было сохранить информацию, содержащуюся в объекте, в базе данных.

Учитывая значительный объем данных в объекте, эта задача была непростой.

Однако я нашел решение:

  

serialize()

function.

unserialize()

function in PHP allows you to convert complex data structures, such as arrays or objects, into strings that can be stored in a database or transferred over a network. In my case, all I had to do to save the crossword object was to use

unserialize()

.

Это было невероятно легко! Однако следует иметь в виду несколько предостережений.

Если вы используете версию PHP старше 4, вам нужно быть осторожным, поскольку во время сериализации сохраняются только свойства, а не методы.

Давайте посмотрим на фрагмент фактического кода, который я использовал: PHP-копия

addslashes()

В этом фрагменте кода я сериализовал

CREATE TABLE `xword` ( `xword_id` int(11) NOT NULL auto_increment, `xword_obj` blob NOT NULL, `xword_name` varchar(100) NOT NULL default '', `xword_owner` varchar(100) NOT NULL default '', `xword_width` int(11) NOT NULL default '0', `xword_height` int(11) NOT NULL default '0', `xword_date` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`xword_id`) ) TYPE=MyISAM AUTO_INCREMENT=1;

object using

xword

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

xword

, and then inserted the serialized object into the

addslashes()

таблица в базе данных.

Стол

serialize()

was created using the following SQL statement: SQL-копия

$crossword

Вы можете заметить, что я использовал

$data = addslashes(serialize($crossword)); $name = ""; if (isset($xwordInfo['xword_name'])) { $name = $xwordInfo['xword_name']; } $today = date('Y-m-d H-i-s'); $sql = "INSERT INTO `xword` (`xword_id`, `xword_obj`, `xword_name`, `xword_owner`, `xword_width`, `xword_height`, `xword_date`) VALUES ('', '" .

$data .

"', '$name', '$owner', '$width', '$height', '$today');"; function. This was necessary because when the crossword object was serialized, it might have contained characters like double quotes that needed to be escaped before saving it to the database. Теперь, когда мы сохранили объект кроссворда в базе данных, нам нужен способ его получения.

Если существует метод сериализации объекта, должен быть также метод его десериализации.

И действительно, есть:

serialize($crossword)

.



serialize()

function in PHP works in the opposite direction of

serialize()

.

Занимает

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.