我希望将PHP varible中的PHP关联数组保存到MYSQL数据库中,然后访问存储的值(在MYSQL数据库中),并在PHP中将其用作关联数组。
$arr = array("abc"=>"ss","aaa"=>"ddd");现在我想保存
array("abc"=>"ss","aaa"=>"ddd");并再次希望检索它并将其赋值给variable。
我尝试使用serialize函数,但它只将单词“数组”保存到数据库中。
发布于 2012-03-14 08:20:07
一种方法是在插入之前将其序列化为字符串,然后在获取之后将其反序列化为数组。有不同的方法可以做到这一点,但如果您的数组很简单,JSON是一种可接受的序列化格式。
您可以在进入的过程中使用json_encode:
$str = json_encode($arr);
// Insert $str into db然后使用json_decode:
// Got $str from db
$arr = json_decode($str);另一种方法是serialize
$str = serialize($arr);
// Insert $str into db// Got $str from db
$arr = unserialize($str);这将为您提供比json_encode和json_decode更多的序列化内容的可能性,但手动检查数据库以查看其中的内容将更加困难。
因此,这两种方法各有优缺点。还有其他的序列化/编组格式。
发布于 2012-03-14 08:32:40
正如Ben所说,您需要在将数组存储到数据库之前序列化数组,然后在读回数组时将其反序列化。如果'Array‘正被写入您的数据库,那么您可能没有将serialize()的结果保存到您正在编写的变量中。
<?php
function store()
{
$arr = array("abc"=>"ss","aaa"=>"ddd");
$serialized = serialize($arr);
// Store $serialized to the database
}
function retrieve()
{
// Retrieve $serialized from the database
$arr = unserialize($serialized);
}https://stackoverflow.com/questions/9694173
复制相似问题