大佬教程收集整理的这篇文章主要介绍了您可以使用PDO和PostgreSQL返回多个结果集吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将多个查询分组为一个驻留在POSTGResql中的函数.将使用PDO查询该功能.
该函数是:
CREATE OR replaCE FUNCTION "test_R_874_11845@ultipe_refcursor"()
RETURNS SETOF refcursor AS $BODY$
DECLARE
parentRC refcursor;
childRC refcursor;
BEGIN
open parentRC FOR
SELECT * FROM parent;
RETURN NEXT parentRc;
open childRC FOR
SELECT * FROM child;
RETURN NEXT childRc;
RETURN;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION "test_R_874_11845@ultipe_refcursor"() owneR TO POSTGRes;
这是PHP代码. “数据库”作为设置常规连接属性的单例类,没有什么特别的.
$database = Database::load();
$sql = "SELEct * FROM test_multipe_refcursor();";
$p = $database->query($sql);
$i = 1;
do
{
$this->set('set' . $i, $p->fetchAll(PDO::FETCH_ASSOC));
$i++;
} while ($p->nextRowset());
$p->closecursor();
结果.
PDOException: sqlSTATE[IM001]: Driver does not support this function: driver does not support multiple rowsets in xxxx.PHP on line 32
这似乎表明不支持该功能,但是再次,我找不到定义确切内容的列表.
有没有人设法使这个工作?
参考文献:
> http://www.sitepoint.com/forums/showthread.php?p=3040612#post3040612
> PostgreSQL function returning multiple result sets
> http://ca.php.net/manual/en/pdostatement.nextrowset.php
返回多个结果集的支持仍在PostgreSQL todo list上,并且绝对不会达到8.4.至于setof refcursors方法,您要执行的操作不起作用,因为该函数未返回多个行集-它正在返回一个refcursors行集.我不确定使用refcursors客户端是否可以工作,但是我不太可能,即使客户端-服务器协议支持它,PDO也不太可能为此使用API.
但是,为什么要在一个查询中返回多个结果集?您始终可以单独进行查询.
以上是大佬教程为你收集整理的您可以使用PDO和PostgreSQL返回多个结果集吗?全部内容,希望文章能够帮你解决您可以使用PDO和PostgreSQL返回多个结果集吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。