Php序列化

Rya*_*yan 0 php mysql serialization

我试图将序列化的数组保存到我的mysql数据库然后检索它们并取消它们但是我无法解决它们如何反序列化它们.这是我到目前为止:

$query = mysql_query("SELECT friends FROM users WHERE id='$myid'");
$friends = mysql_fetch_array($query);

unserialize($friends);
Run Code Online (Sandbox Code Playgroud)

被困在这里?????

array_push($friends, $id);
$friendsUpdated = serialize($friends);

mysql_query("UPDATE users SET friends='$friendsUpdated' WHERE id='$myid'");
Run Code Online (Sandbox Code Playgroud)

Pau*_*xon 6

mysql_fetch_array返回一个数组,因此您需要选择所需数组的位:

$row = mysql_fetch_array($query);

$data=unserialize($row['friends']);
Run Code Online (Sandbox Code Playgroud)

你也应该养成检查错误的习惯,例如

$result = mysql_query("SELECT friends FROM users WHERE id='$myid'");
if ($result) 
{
    if ($row = mysql_fetch_array($result))
    {
         $data=unserialize($row['friends']);

    }
    else
    {
         //empty result, set up empty data?
         $data=array();
    }

} 
else 
{
    die('Invalid query: ' . mysql_error());
}
Run Code Online (Sandbox Code Playgroud)