我在mySQL数据库中存储了以下序列化的PHP数组:
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);
当我把它加在中间时,我得到的只是一张空白页。有什么想法吗?
也许您应该看看将值插入数据库的过程。值序列化后,是否可能以某种方式对其进行编码,例如对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);