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 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错