无法访问数组以反序列化

时间:2018-10-04 11:33:54

标签: php postgresql serialization

我将json过滤器作为序列化数据存储在我的postgre数据库中,插入效果很好。

现在,我需要查询select,并反序列化我的过滤器。

PostgreSQL查询给了我这个数组数组($ results):

  array (size=3)
  0 => 
    array (size=4)
      'id_filtres_stock' => int 7
      'id_liseo_utilisateurs' => int 46
      'filtres' => string 'O:8:"stdClass":1:{s:5:"ville";s:9:"ABBEVILLE";}' (length=47)
      'nom_filtre' => null
  1 => 
    array (size=4)
      'id_filtres_stock' => int 8
      'id_liseo_utilisateurs' => int 46
      'filtres' => string 'O:8:"stdClass":0:{}' (length=19)
      'nom_filtre' => string 'test' (length=4)
  2 => 
    array (size=4)
      'id_filtres_stock' => int 9
      'id_liseo_utilisateurs' => int 46
      'filtres' => string 'O:8:"stdClass":1:{s:7:"nom_pdg";s:16:"AUCHAN BAGNOLET ";}' (length=57)
      'nom_filtre' => string 'test' (length=4)

我需要使用unserialize()将'filtres'转换回去,所以我正在尝试访问filtres变量:

echo($results[0][0]->filtres) ;

它不起作用,无法显示整个数组。

我什至尝试过:

$d = (string)$results[0][0]->filtres;

$d = unserialize($d); 

没有运气。

有什么想法吗?

  

编辑:好的,我现在访问得很好:

 $d = $result[0]['filtres'];
 $f = unserialize($d); 

谢谢,解决了!

1 个答案:

答案 0 :(得分:0)

您只需要这样获得它:

$filtres = results[0]['filtres'];

然后您可以将其反序列化:

$filtres = unserialize($filtres);