我使用 phpserialize()
来序列化一个数组。然后我把它放在数据库中(列类型文本)。我的数组包含其他语言字符,如中文或日文字符。
它能够正确序列化并将其存储在数据库中,但是,当我从数据库中获取序列化数组并将其反序列化以便我可以使用该数组时,它将不起作用,反序列化数组将是空白的。
这是我的代码,保存脚本:
$all = array (
"points" => '123',
"photo" => '写真',
"video" => 'video'
);
$sall = serialize($all);
mysql_query("UPDATE users SET lang = '$sall' WHERE uname='$uname'")
or die(mysql_error());
检索脚本:
$result = mysql_query("SELECT * FROM users WHERE uname='$uname'")
or die(mysql_error());
$row = mysql_fetch_array($result);
if($row) {
$lang = $row['lang'];
$orilang = unserialize($lang);
// orilang contains the array
echo $orilang['photo'];
}
else {
}
$orilang['photo']
出来是空的,但 $lang
有序列化的数据。