我将以下序列化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);
当我在中间添加它时,我得到的只是一个空白页面。有什么想法吗?
答案 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);