将postgresql hstore转换为php数组

arc*_*eta 10 php postgresql

是否有一个很好的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;)
Run Code Online (Sandbox Code Playgroud)

我们如何将其转换为以下php数组?

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

我遵循以下转换器但它似乎没有处理不带引号的NULL:https://github.com/chanmix51/Pomm/blob/master/Pomm/Converter/PgHStore.php

cwa*_*ole 5

我相信语法会是这样的:

$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 ];
}
Run Code Online (Sandbox Code Playgroud)