将postgresql hstore转换为php数组[英] Convert postgresql hstore to php array

本文是小编为大家收集整理的关于将postgresql hstore转换为php数组的处理方法,想解了将postgresql hstore转换为php数组的问题怎么解决?将postgresql hstore转换为php数组问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

是否有一个很好的 php 代码片段可以将 postgresql hstore 转换为 php 数组,从而将 hstore 中未引用的 NULL 正确转换为 php NULL?

EG:假设我们有以下 hstore 字符串:

"k1"=>"v1", "k2"=>NULL, "k3"=>"NULL", "k4"=>"\"v4"
(aka SELECT '"k1"=>"v1","k2"=>NULL,"k3"=>"NULL","k4"=>"\\"v4"'::hstore;)

我们怎样才能把它转换成下面的php数组?

array('k1' => 'v1', 'k2' => NULL, 'k3' => 'NULL', 'k4' => '\"v4');

我关注以下转换器,但它似乎无法处理未引用的 NULL:https://github.com/chanmix51/Pomm/blob/master/Pomm/Converter/PgHStore.php

推荐答案

我相信语法应该是这样的:

$pdo = new PDO( /*connection string*/ );
// h is the hstore column.
$stmt = $pdo->query( "SELECT (each(h)).key, (each(h)).value FROM <table name>" );
$output = array();
foreach( $stmt->fetchAll( PDO::FETCH_NUM ) as $row )
{
   // $row[ 0 ] is the key, $row[ 1 ] is the value.
   $output[ $row[ 0 ] ] = $row[ 1 ];
}

本文地址:https://www.itbaoku.cn/post/1763744.html