CodeIgniter和PostgreSQL - 从函数返回refcursor中检索数据

Jus*_*ier 0 php postgresql codeigniter ref-cursor

我有一个PostgreSQL函数,它选择数据并通过refcursor返回它,类似于以下声明:

CREATE OR REPLACE FUNCTION my_function()
  RETURNS refcursor AS
  ...
Run Code Online (Sandbox Code Playgroud)

如何通过CodeIgniter模型从此功能检索数据?我不能直接从函数中选择SELECT,因为它不直接返回数据.

Jus*_*ier 5

如果有人有兴趣,php.net上的帖子给出了以下解决方案:

protected function dbquery($query){
  pg_query("BEGIN;");
  $tr=pg_query($query);
  $r=pg_fetch_row($tr);
  $name=$r[0];
  $rs=pg_query("FETCH ALL IN \"" . $name . "\";");
  pg_query("END;");
  return $rs;
}
Run Code Online (Sandbox Code Playgroud)

哪个可以在模型中连接如下:

$query = $this->dbquery("SELECT * FROM my_function()");

while ($row = pg_fetch_assoc($query))
{
   array_push($result, array('my_column' => $row['my_column'] ));
}
Run Code Online (Sandbox Code Playgroud)

不是理想的解决方案,因为它不使用CI Postgres驱动程序的功能(虽然它可能可以重构),但它的工作原理.