dongou3158 2016-07-26 06:14
浏览 124
已采纳

从数据库反序列化序列化字符串时出现错误消息的原因?

Well, I have following array and variables and it's output is bellow :

`print_r($menu_ex_qnt);`

Array
(
    [0] => 1
    [1] => 2
)


print_r($menu_extra_item_name);

Array
(
    [0] => 238
    [1] => 239
)

$final_ex = array_combine($menu_ex_name, $menu_ex_qnt);        
print_r($final_ex);

Array
(
    [238] => 1
    [239] => 2
)

echo $final_ex = serialize($final_ex);

a:2:{i:238;s:1:"1";i:239;s:1:"2";}

Now, I am inserting this $final_ex variable to database.

But when I get this variable from database and try to unserialize it then it's showing me following error message :

echo unserialize($p_ext_items);
Note : This $p_ext_items contain the serialize string e.g: a:2:{i:238;s:1:"3";i:239;s:1:"1";}

Notice: unserialize(): Error at offset 11 of 54 bytes .......

why ?

What I actually want

There are 2 variables $menu_ex_qnt and $menu_extra_item_name. I want to save these 2 variables value not key to the database. So that, in final variable there will be key and value pair.

For e.g:

238 => 1
239 => 2
  • 写回答

1条回答 默认 最新

  • dskyx46424 2016-07-26 06:31
    关注

    Since you said that $p_ext_items contains the serialize string which is :- a:2:{i:238;s:1:"1";i:239;s:1:"2";}

    and you did:-

    $p_ext_items = htmlspecialchars($result['p_ext_items']);
    echo unserialize($p_ext_items);
    

    You have to remove first line, not needed in this case, so simply you need to do:-

    print_r(unserialize($p_ext_items)); // it will give array so use print_r
    

    Note:- Working example for you:- https://eval.in/611959

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同