serialize()和unserialize()(让数据库中一个字段存储多项数据 )

本文介绍PHP中serialize()和unserialize()函数的基本用法,通过实例展示如何使用这两个函数来存储和恢复数组数据。此外,还提供了一个项目示例,展示了如何将序列化应用于数据库操作中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

serialize()函数和unserialize()函数


   一个是进行序列化存储,
   另一个则是进行序列化恢复

示例用法:

<?php 
$array = array(); 
$array['key'] = 'website'; 
$array['value']='www.chhua.com'; 
$a = serialize($array); 
echo $a; 
unset($array); 
$a = unserialize($a); 
print_r($a); 
?> 

序列化的结果

a:2:{s:3:"key";s:7:"website";s:5:"value";s:13:"www.chhua.com";}

序列化恢复的结果

Array
(
   [key] => website
   [value] => www.chhua.com
)

思路:

单字段序列化存入,读取时恢复

项目示例

  • 从数据库中读取
public function get_settings()
	{
		if ($system_setting = $this->fetch_all('system_setting'))
		{
			foreach ($system_setting as $key => $val)
			{
				$settings[$val['varname']] = unserialize($val['value']);
			}
		}

		return $settings;
	}
  • 向数据库中存储
	public function set_vars($vars)
	{
		if (!is_array($vars))
		{
			return false;
		}

		foreach ($vars as $key => $val)
		{
			$this->update('system_setting', array(
				'value' => serialize($val)
			), "`varname` = '" . $this->quote($key) . "'");
		}

		return true;
	}
  • 数据库截图
    这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值