我有一个存储序列化值的 SQL 列。我想查询表,获取所有列值,对它们进行反序列化,然后处理结果数组中的数据。
$g1 = mysql_query("SELECT q4 FROM qa");
$g2 = (mysql_fetch_array($g1));
但 $g2 不会返回所有列值。另外,在我得到 $g2 数组中的所有值之后,我应该如何反序列化结果数组?谢谢!
我有一个存储序列化值的 SQL 列。我想查询表,获取所有列值,对它们进行反序列化,然后处理结果数组中的数据。
$g1 = mysql_query("SELECT q4 FROM qa");
$g2 = (mysql_fetch_array($g1));
但 $g2 不会返回所有列值。另外,在我得到 $g2 数组中的所有值之后,我应该如何反序列化结果数组?谢谢!
试试这个 :
$g1 = mysql_query("SELECT q4 FROM qa");
$val = array();
while($g2 = mysql_fetch_array($g1)){
$val[] = unserialize($g2['q4']);
}
echo "<pre>";
print_r($val);
如果 q4 是使用serialize函数序列化的字符串,那么您需要使用 unserialize 函数。
$g2 = array();
foreach(mysql_fetch_array($g1) as $row) {
$g2[] = unserialize($row[0]);
}
您需要遍历行
像:
$g1 = mysql_query("SELECT q4 FROM qa");
$g2 = Array();
while($row = (mysql_fetch_array($g1))) {
$g2[] = $row;
}
假设您使用 PHP 序列化数据,答案是unserialize()
方法