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 に答える