从mysql数据库使用php反序列化数据数组

时间:2012-04-01 14:48:14

标签: php mysql arrays serialization

我将以下序列化PHP数组存储在mySQL数据库中:

a:2:{i:2070;s:4:"0.00";i:1901;s:4:"1.00";}

现在,我设法用以下内容输出该值:

$my_data=mysql_result($result,$i,"my_data");
echo "$my_data";

但我无法将其反序列化。我尝试了这个,但它不起作用:

$my_data=unserialize($my_data);

当我在中间添加它时,我得到的只是一个空白页面。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

也许您应该查看将值插入数据库的过程。是否有可能在序列化值之后,它们是以某种方式编码的,例如html实体或其他东西?

我在本地运行了测试,但收到了同样的错误消息。输出结果如下:

a:2:{i:2070;s:4:"0.00";i:1901;s:4:"1.00";} Notice: unserialize(): Error at offset 12 of 62 bytes in /srv/localhost/public_html/test.php on line 6 

这是代码

<?php

$value = htmlentities('a:2:{i:2070;s:4:"0.00";i:1901;s:4:"1.00";}');
echo $value;

unserialize($value);