【问题标题】:How to Work with PostgreSQL Function Output in PHP如何在 PHP 中使用 PostgreSQL 函数输出
【发布时间】:2010-09-10 06:57:01
【问题描述】:

我有一个返回 SETOF 自定义类型的 postgresql (V 8.4) 函数。此函数输出的字符串示例如下 4 行:

(2,"CD,100"," ","2010-09-08 14:07:59",New,0,,,,,,"2010-09-06 16:51:51","2010-09-07 16:51:57",)
(5,CD101,asdf,"2010-08-08 14:12:00",Suspended-Screen,1,10000,,,,,,,)
(4,DNR100,asdf,"2010-09-08 14:10:31",Suspended-Investgate,0,,,,,,"2010-09-06 16:51:51","2010-09-07 16:51:57",)
(3,MNSCU100," ","2010-09-08 14:09:07",Active,0,,,,,,,,)

我需要在 PHP 中处理这些数据,并且我正在尝试找出使用它的最佳方法。我想要的是,如果 postgresql 有一种方法可以像表一样返回它,其中列表示记录中的每个值,而不是逗号分隔的字符串。

这可能吗?如果不是,那么在 PHP 中使用这个逗号分隔的字符串的最佳方法是什么?

我看过这篇文章 (Convert PostgreSQL array to PHP array) 并且可以使用那里提到的功能,但我想问一下是否有人有其他想法或建议。

谢谢, 巴特

【问题讨论】:

    标签: php postgresql function


    【解决方案1】:

    str_getcsv() 会将字符串解析为 CSV 数据并返回单个字段的数组

    【讨论】:

    • 马克,感谢您的快速回复。这似乎可以满足我的需要。除非我遇到更好的东西,否则我将继续使用此选项。再次感谢。
    • Marc, Scott 在下面提供了一个更好的答案。再次感谢您对此提供的帮助。
    【解决方案2】:

    是的,很简单,只需更改调用函数的方式即可。

    代替

    SELECT my_srf(parm1);
    

    做任何一个:

    SELECT * FROM my_srf(parm1);
    SELECT (my_srf(parm1)).*;
    

    您甚至可以通过这种方式获取列名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      • 1970-01-01
      • 2023-01-08
      • 2015-09-25
      • 1970-01-01
      相关资源
      最近更新 更多