使用序列化将数组存储在数据库中,但在php中取消序列化时出现偏移量错误


Storing array in db using serialize but get offset error when unserializing it back in php.

我有一个朋友id的数组,我正试图将此列表存储在每个用户的数据库中。

$share_friend_id = ( serialize($share_id_array));

我的数据库如下所示:1510161011146851 John a:2:{i:0;s:8:"Kabo Lee";i:1;s:6:"Bo Lee";}a:2:{i:0,s:15:"601599471189716";i:1;s:16:"15327449…

第一列是用户id,然后是名称,然后是使用serialize函数从数组转换为字符串的朋友id的列表。

我正在尝试将这些数据放回php中。我有以下内容:

     while ($row = $friendresult->fetch_assoc()) {
     //for friend(s)
    $id[] = $row['friend_id'];
    $name = $row['friend_name'];
    $friend_share_friend_id  = ($row['share_friend_id']);
    }
$data = array();    
$data = ( unserialize($friend_share_friend_id));
print_r($data);

但我得到了错误:注意:unserialize():C:''examplep''htdocs''app''sql.php 中60字节的偏移61处出错

我不确定使用序列化函数是否是个好主意。有人有什么建议吗?

尝试下一个

<?php
$share_friend_id = ( serialize($share_id_array));
$share_friend_id_2  = unserialize($share_friend_id);
var_dump($share_friend_id_2);  
?>

如果它工作时没有任何问题,这意味着DB中的字段没有足够的空间来存储所有数据字符串