php取出数据库字段,php关于从数据库一个字段里面提取数据的问题

博客内容讲述了在数据库结构调整后,如何从一个包含多个数据的单一字段中提取信息。原来8个独立字段现在合并为一个名为`data`的字段,数据以序列化格式存储。通过使用`unserialize`函数并处理换行符,可以成功反序列化数据并访问如`time`等字段。
摘要由CSDN通过智能技术生成

原来我的网站后台有一张表,是从数据库多个字段里面输出字段的。现在数据库结构换了,几个数据全部融合在一个字段里面。现在就要从一个字段里面读取数据出来,这个应该怎么写代码?我把代码贴出来。

以前的代码:有8个字段分别存放数据。

=date("Y-m-d H:i:s",$row['time']);?>

=$row['name'];?>

=$row['url'];?>

=$row['word']?>

=$row['rpage']?>

=$row['ip']?>

?=$row['ip_city'];?>

现在只有一个字段:data,这5个字段的数据全部融合在一个字段里面。请问现在应该怎么写代码输出在前台表格上面?

data字段里面存放的数据类型

a:9:{s:4:" time";i:1405306402;s:4:" name";s:6:"新晨";s:5:" url";s:1:"-";s:4:" word";s:1:"-";s:5:" rpage";s:29:"http://www.baidu.com/test.html";s:5:"cpage";s:1:"-";s:2:"ip";s:15:"117.151.180.150";s:7:" ip_city";s:31:"中国北京市 北京市移动";s:4:"miao";s:1:"5";}

回复讨论(解决方案)

$row = unserialize($row['data']);

$row = unserialize($row['data']);

比如把data数据里面的time后面的1405306402单独提出来应该怎么提取?

$row = unserialize($row['data']);

echo date("Y-m-d",$row[0]);

你 print_r($row); 看看就知道了

??使用了序列化,?行一次反序列化即可,但你的??有??

直接使用unserialize?返回false。$content = 'a:9:{s:4:"time";i:1405306402;s:4:"name";s:6:"新晨";s:5:"url";s:1:"-";s:4:"word";s:1:"-";s:5:"rpage";s:29:"http://www.baidu.com/test.html";s:5:"cpage";s:1:"-";s:2:"ip";s:15:"117.151.180.150";s:7:"ip_city";s:31:"中国北京市 北京市移动";s:4:"miao";s:1:"5";}';var_dump(unserialize($content)); // bool(false)

因?你的??中包含了\r ?致?算?度不?

因此需要?理一下才可以正常unserialize

function mb_unserialize($serial_str) { $serial_str= preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str ); $serial_str= str_replace("\r", "", $serial_str); return unserialize($serial_str);}$content = mb_unserialize($content);//?取timeecho $content['time']; //1405306402

居然?有?分。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值