【发布时间】:2012-04-01 14:48:13
【问题描述】:
我在 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);
当我在两者之间添加它时,我得到的只是一个空白页。有什么想法吗?
【问题讨论】:
-
你打开了 display_errors 吗?或者查看您的错误日志。空白屏幕通常表示某种错误。
-
我刚刚试了一下,得到了这个: 注意:unserialize() [function.unserialize]: 在第 25 行的 test.php 中偏移 12 个字节的 62 个字节处出错
-
您是否检查过从数据库返回的字符串与您放入数据库的字符串相同?顺便说一句,将序列化字符串存储在数据库中通常不是一种好习惯。
-
和 var_dump 显示 bool(false)
-
是的,字符串是一样的。不幸的是,我的软件开发人员是这样做的,而不是我 :( 我在 unserialize.net 上测试了序列化的字符串,它在那里解码得很好,所以我认为问题一定出在我的最后。
标签: php mysql arrays serialization