【问题标题】:PHP5 + PostgreSQL - pg_fetch_row() returning string not arrayPHP5 + PostgreSQL - pg_fetch_row() 返回字符串而不是数组
【发布时间】:2012-10-09 07:30:30
【问题描述】:

PHP5 + PostgreSQL (ubuntu 12.04) 根据 doco 返回 pg_fetch_row() 的数组。根据我的测试结果表明它正在返回一个字符串,是否有一些配置选项?

$db = openDatabase(<blah>);
$query = "SELECT (id,serial,tag) FROM devices ORDER BY tag ASC";
$result = pg_query($db,$query);
if ($result)
{
    while ($row = pg_fetch_row($result))
        echo "IN: $row[0] - $row[1] - $row[2]";
}

我希望看到

IN: <value> - <value> - <value>

但我明白了

IN: (<value>,<value>,<value>) - - 

我猜这意味着 pg_fetch_row() 返回的是字符串而不是数组?!

例如实际运行:

IN: (10,7426573,________) - - 
IN: (7,6862,FMUX-TAG) - - 
IN: (9,6914082,L6) - - 

这似乎是一个简单的问题,但我找不到答案。 我知道我可以解析结果,但这很麻烦。

【问题讨论】:

    标签: php postgresql row fetch pg


    【解决方案1】:

    SELECT (id,serial,tag) 更改为SELECT id,serial,tag,您就完成了。

    【讨论】:

    • 就是这样。谢谢。所以它是 PostgreSQL(我的语法),而不是 PHP。
    【解决方案2】:

    答案很简单——只需从 SELECT 语句中删除括号,如下所示:

    $query = "SELECT id,serial,tag FROM devices ORDER BY tag ASC";
    

    否则它是输出中的字符串。

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      相关资源
      最近更新 更多