2013-03-13 4 views
0

У меня есть столбец SQL, где хранятся сериализованные значения. Я хочу взаимодействовать с таблицей, получать все значения столбцов, неэтериализовывать их, а затем работать с данными в приведенном массиве.Php unserialize массив сериализованных

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

, но $ g2 не возвращает все значения столбца. Кроме того, после того, как я получу все значения в массиве $ g2, как я должен неэтериализовать полученный массив массивов? Спасибо!

+0

Что вы имеете в виду, но это делает 'nt возвращает все значения? Проверьте таблицу через workbench mysql или что-то, чтобы убедиться, что данные на самом деле там. Для unserialize вы можете использовать implode() для массивов или list(), а затем перебирать их для присвоения каждому значению переменной – aleation

ответ

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

если q4 является строка сериализовать с помощью serialize функции, то вам нужно использовать десериализируются функцию.

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

Вам нужно перебрать строки

как:

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

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

если вы сериализовать данные с PHP ответом является unserialize() метод

Смежные вопросы