php を使用serialize()
して配列をシリアル化します。次に、データベースに入れます(列タイプのテキスト)。私の配列には、中国語や日本語の文字など、他の言語の文字が含まれています。
シリアル化してデータベースに正しく保存することはできますが、シリアル化された配列をデータベースから取得してシリアル化を解除して配列を使用できるようにすると、機能しません。シリアル化解除された配列は空白になります。
これが私のコードです、スクリプトを保存します:
$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
が、シリアル化されたデータがあります。