在我的 mysql 单元格中,这是使用序列化函数存储的
a:1:{i:0;s:275:"a:4:{s:8:"khghg_id";s:10:"foo1187";s:3:"uri";s:21:"foo/vtory/1187";s:4:"name";s:5:"nmart";s:5:"tuhlmb";a:3:{i:0;s:40:"knuujhs/201205/13_03_pceb9.jpg";i:1;s:40:"knuujhs/201205/13_03_0wlih.jpg";i:2;s:40:"knuujhs/201205/13_03_tq5wf.jpg";}}";}
我正在尝试反序列化
我正在使用这个代码
$cell =$row9['attachment'];
$list = unserialize($cell);
$info = unserialize($list[0]);
var_dump($info);
当我尝试这个时,我收到错误 bool(false) 错误 所以我尝试使用 parse_str 使用 parse_str 我没有收到任何错误
parse_str($cell,$list );
但是我没有在我的数据库中得到输出 我正在将输出存储在数据库中,并将查询提交给数据库。除了这个反序列化值之外,所有的东西都被存储了。在这里你可以注意到有
khghg_id 即 foo1187
uri 是 foo/vtory/1187
名字是nmart
我想将这些详细信息存储在我的数据库中,所以我正在使用
'.$info['khghg_id'].' for sending the data to mysql but mysql stores everything other than all unsterilized values
最佳答案
您从数据库中检索序列化文本。
你反序列化它..改变它然后当你把它存回数据库时你需要把它序列化回来
//retrieve serialized data from database
$arr = unserialize($row['properties']);
//get the desired value
$khghg_id = $arr['khghg_id'];
//now insert $khghg_id in database
从您上面发布的代码来看..我看到您反序列化了 2 次..您真的不需要这样做
$cell =$row9['attachment'];
$list = unserialize($cell);
$info = $list[0]; //this line should make the difference
var_dump($info);
关于php - 从mysql反序列化数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10570248/