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指令引起的。检查它是否设置为 ON 可能是有意义的,如果是,不妨将其设置为 OFF。提供一些深度细节,例如您从哪里/如何获得您的内容$user['dungeon_list']并显示 avar_dumpprint_r它的内容。

于 2012-04-19T14:40:54.107 回答