我正在尝试反序列化存储在mysql表中的字符串。
以下是存储在mysql表中的字符串。
a:3:{s:15:\"purchase_amount\";d:500;s:4:\"more\";d:7;s:4:\"less\";d:11.5;}
在插入时我写了下面的代码。
addslashes(serialize(array('purchase_amount' => $values['purchase_amount'], 'more' => $values['transportaion_cost_gretter'], 'less' => $values['transportaion_cost_lesser'])))
在检索时我写了以下代码。
unserialize(stripslashes($row->getTransportaionCost()));
我收到了以下错误。
Notice: unserialize() [function.unserialize]: Error at offset 5 of 98 bytes
编辑:
我试过json_encode和json_decode ......
以下是mysql表中的json数据
{"purchase_amount":500,"more":7,"less":11.5}
以下是php中的json解码。
var_dump(json_decode($row->getTransportaionCost())); //null
任何人都可以告诉我这是什么问题吗?
答案 0 :(得分:0)
问题来自于将数据存储在数据库中时,这些反斜杠不应该在这里。删除addslashes,它会更好用