php - 从mysql反序列化数据

标签 php mysql

在我的 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/

相关文章:

php - PDFTK 无法创建用户目录

mysql 行构造函数语法

MySQL 从单独的表中添加列

php - 如何在 yii 的更新 View 中加载多个下拉列表中的选定值?

php - 复选框和检查Datatable Jquery PHP Mysql中的所有功能

php - MySQLi + PHP 按日期和 ID 降序排序

mysql - 如何在 Laravel 中获取 sql AS 值?

Mysql插入列名称是(从同一个表的另一列中选择值)

php - Composer 包测试 Bootstrap

php - 奥尔森时区偏移错误?