-1

我正在尝试反序列化存储在 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

谁能告诉我是什么问题?

4

1 回答 1

0

问题来自当您将数据存储在数据库中时,那些反斜杠不应该在这里。删除addlashes,它会更好地工作

于 2012-07-11T12:27:57.407 回答