$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']);
这就是我输出它的方式。它说 注意:unserialize()[function.unserialize]:第12行C:\ wamp \ www \ index.php中偏移量为0的140字节错误
Dungeon_list存储为blob,因为我学会了用它来存储它。谢谢!
答案 0 :(得分: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));
答案 1 :(得分:0)
我不知道您$user['dungeon_list']
的内容是什么,最好提供内容。
无论如何,它可能是由PHP magic_quotes_gpc
指令引起的。检查它是否设置为ON可能是有意义的,如果是,也可以将其设置为OFF。提供一些深度详细信息,例如您在何处/如何获取$user['dungeon_list']
的内容并显示var_dump
或print_r
。