0
$array = array('1','2','3','4','5','6','10','100');
$array2 = serialize($array);
if($stmt->prepare("UPDATE `users` SET `dungeon_list` = ? WHERE name = ?")) { $stmt->bind_param('bs',$array2,$user['name']); $stmt->execute(); }

これは、配列をmysqlに格納する方法で使用することを学んだものです。

echo unserialize($user['dungeon_list']);

そして、これが私がそれを出力する方法です。Notice: unserialize() [function.unserialize]: Error at offset 0 of 140 bytes in C:\wamp\www\index.php 行 12

Dungeon_list は blob として保存されます。これは、保存に使用することを学んだためです。ありがとうございました!

4

2 に答える 2

2

配列値のいずれかに "、'、:、または ; が含まれていると、シリアル化が破損するため、配列をシリアル化および非シリアル化する前にエンコードおよびデコードしてください。

//to safely serialize
$safe_string_to_store = base64_encode(serialize($multidimensional_array));

//to unserialize...
$array_restored_from_db = unserialize(base64_decode($encoded_serialized_string));
于 2012-04-19T13:27:41.337 に答える
0

あなたの の内容が何かわかりません$user['dungeon_list']。内容を提供する方がよいでしょう。

とにかく、おそらくPHPmagic_quotes_gpcディレクティブが原因です。オンに設定されているかどうかを確認することは理にかなっています。そうであれば、オフに設定することもできます。どこで/どのようにしてあなたのコンテンツを取得したか、またはそれ$user['dungeon_list']を表示するなど、いくつかの詳細な詳細を提供します.var_dumpprint_r

于 2012-04-19T14:40:54.107 に答える