2010-09-09 17 views
0

我有一個postgresql(V 8.4)函數,它返回一個自定義類型的SETOF。從這個函數輸出字符串的一個例子是以下4行:如何在PHP中使用PostgreSQL函數輸出

(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),可以使用那裏提到的功能,但我想問問任何人是否有其他想法或建議。

感謝, 巴特

回答

1

是的,它的真正的輕鬆,只是改變你的方法調用的函數的數組。

而不是

SELECT my_srf(parm1); 

執行下列任:

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

你甚至會得到列名了這種方式。

+0

完美。感謝斯科特。 – 2010-09-10 13:46:31

2

str_getcsv() which'll解析字符串爲CSV數據並返回各個字段

+0

Marc,感謝您的快速回復。這似乎正在做我所需要的。除非我遇到更好的事情,否則我會繼續這個選項。再次感謝。 – 2010-09-09 20:41:53

+0

Marc,Scott在下面提供了更好的答案。再次感謝您的幫助。 – 2010-09-10 13:45:00