PHP将数组存储到MySQL并检索

时间:2012-04-19 13:26:29

标签: php mysql arrays

$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,因为我学会了用它来存储它。谢谢!

2 个答案:

答案 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_dumpprint_r