0

我有一个存储序列化值的 SQL 列。我想查询表,获取所有列值,对它们进行反序列化,然后处理结果数组中的数据。

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

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

4

3 回答 3

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);
于 2013-03-13T09:13:13.503 回答
1

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

$g2 = array();
foreach(mysql_fetch_array($g1) as $row) {
    $g2[] = unserialize($row[0]);
}
于 2013-03-13T09:13:29.470 回答
0

您需要遍历行

像:

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

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

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

于 2013-03-13T09:14:53.497 回答