将 PHP 多维数组转换为 Postgres HStore



有没有人想出一个好的解决方案来将数组转换为Postgres HStore值?

Pomms 转换器,https://github.com/chanmix51/Pomm/blob/master/Pomm/Converter/PgHStore.php,不适用于多维数组。

如果你有兴趣将PHP数组转换为PostgreSQL Hstore数组(数据类型:hstore[]),那么PHPG的Utils类就可以了(免责声明:我是该项目的维护者):

PHP Array of Asociative Arrays to PostgreSQL Hstore Array:

<?php
include 'phpg_utils.php';
$array = array(
  array(
    'name' => 'John',
    'age' => 32
  ),
  array(
    'name' => 'Jane',
    'age' => 28
  )
);
$hstore_array = PHPG_Utils::hstoreFromPhp($array, True);
print $hstore_array;
// Outputs:
//   {""name"=>"John","age"=>"32"",""name"=>"Jane","age"=>"28""} 
// You can then directly insert this into the database:
pg_query("INSERT INTO my_table (hstore_arr_col) VALUES ('" . pg_escape_string($hstore_array) . "')");

PHP 关联数组到 PostgreSQL Hstore:

$array = array(
    'name' => 'John',
    'age' => 32
);
$hstore = PHPG_Utils::hstoreFromPhp($array);
print $hstore ;
// Outputs:
//   "name"=>"John","age"=>"32"
// You can then directly insert this into the database:
pg_query("INSERT INTO my_table (hstore_col) VALUES ('" . pg_escape_string($hstore) . "')");

更新:

在PostgreSQL 9.4+世界中,我强烈建议使用PostgreSQL的JSONB数据类型而不是HSTORE。这使您可以轻松地将 PHP 关联数组编码为 JSON,反之亦然。这意味着没有专门的图书馆,也没有全面的官方支持。

相关内容

  • 没有找到相关文章

最新更新