我已经创造了一个喜欢' social media website I'm working on的系统,但我对json_encode和json_decode有点麻烦。我使用数组存储谁喜欢帖子,所以我需要这两个函数使它可以存储,但由于某种原因,它有时会将对象保存到数据库:
{"1":"admin"}
而不是数组(我想要的):
["admin"]
这是我的代码:
if ($liked_by == NULL){ $liked_by = Array(); }
if (! in_array($user, $liked_by)){
$liked_by[] = $user;
$likes = $row['likes']+1;
$liked_by = json_encode($liked_by);
mysql_query("UPDATE $stream SET liked_by = '$liked_by' WHERE id = ".$id, $db)
or die(mysql_error($db));
mysql_query("UPDATE $stream SET likes = '$likes' WHERE id = ".$id, $db)
or die(mysql_error($db));
} else{
if(($liker = array_search($user, $liked_by)) !== false) {
unset($liked_by[$liker]);
}
$likes = $row['likes']-1;
$liked_by = json_encode($liked_by);
mysql_query("UPDATE $stream SET liked_by = '$liked_by' WHERE id = ".$id, $db)
or die(mysql_error($db));
mysql_query("UPDATE $stream SET likes = '$likes' WHERE id = ".$id, $db)
or die(mysql_error($db));
}
对于使用已弃用的mysql函数感到抱歉......
我只是不确定发生了什么。 提前谢谢。
答案 0 :(得分:1)
您可以使用
json_decode($data,true);
其中$data
是来自DB的保存数据。
上面将返回一个数组,您可以对其进行操作以便进一步操作。