-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