Php反序列化序列化数组

时间:2013-03-13 09:09:47

标签: php sql serialization

我有一个SQL列,用于存储序列化值。我希望interogate表,获取所有列值,反序列化它们,然后处理结果数组中的数据。

 $g1 = mysql_query("SELECT q4 FROM qa");
 $g2 = (mysql_fetch_array($g1)); 

但$ g2不会返回所有列值。另外,在我获得$ g2数组中的所有值之后,我应该如何反序列化生成的数组数组? 谢谢!

3 个答案:

答案 0 :(得分:1)

试试这个:

$g1   = mysql_query("SELECT q4 FROM qa");
$val  = array();
while($g2   = mysql_fetch_array($g1)){
    $val[]  = unserialize($g2['q4']);
}

echo "<pre>"; 
print_r($val);

答案 1 :(得分:1)

如果q4是使用serialize函数进行字符串序列化的,那么你需要使用unserialize函数。

$g2 = array();
foreach(mysql_fetch_array($g1) as $row) {
    $g2[] = unserialize($row[0]);
}

答案 2 :(得分:0)

您需要遍历行

像:

$g1 = mysql_query("SELECT q4 FROM qa");
$g2 = Array();

while($row = (mysql_fetch_array($g1))) {
    $g2[] = $row;
}

假设您使用PHP序列化数据,答案是unserialize()方法