Hi. I finally found out how to fetch the cursor returned by a PostGreSQL function in my PHP script. Here from the Postgres archives: http://archives.postgresql.org/pgsql-php/2002-11/msg00054.php This is the "head" of function: -------------- create or replace function match(refcursor,int8) returns refcursor as ' DECLARE vid ALIAS FOR $2; vcursor ALIAS FOR $1; BEGIN (...) return vcursor; (...) -------------- And this is php call: -------------- $conn = pg_pconnect ($conn_string); $qry = "BEGIN; SELECT matche('cursorsalida',$identificador); fetch all in cursorsalida; "; $result = pg_query ($conn, $qry); $num = pg_num_rows($result); for ($i=0; $i < $num; $i++) { $r = pg_fetch_row($result, $i); (...) --------------- You have to pass a refcursor as input parameter. -----Message d'origine----- De : Andrew J. Kopciuch [mailto:akopciuch@xxxxxxxxxxxxxxxxxx] Envoyé : Sunday, October 05, 2003 5:22 PM À : Rod Taylor Cc : sebastien.baudry@xxxxxxxxxxxxxxxxxxxxxx; Sebastien BAUDRY; pgsql-php@xxxxxxxxxxxxxx Objet : Re: [PHP] How to manipulate a cursor returned by a PL/pgSQL in a PHP On Sunday 05 October 2003 06:22, Rod Taylor wrote: > On Sun, 2003-10-05 at 04:38, Andrew J. Kopciuch wrote: > > On Sunday 05 October 2003 01:32, Sebastien BAUDRY wrote: > > > Hi. > > > My function returns a cursor and I don't know how to > > > fetch the cursor in my PHP script. > > > Anybody could help me? > > > > PHP does not directly support cursors under PostgreSQL. :-( > > Huh? Cursors in PostgreSQL are accessible via the standard query > interface within PHP. > > It's 2 queries, one to create the cursor, one to request the number of > tuples. PHP does not need any special logic to handle this. > > pg_query('DECLARE thecursor CURSOR FOR ....') > > pg_query('FETCH ...'); > > The fetch will act just like a select in regards to returned data. Yes. I should have elaborated a bit more. I think this is in reference to his earlier post mentioning a REF CURSOR from a stored procedure. There is no support for binding a PHP var to a cursor like the Oracle functions offer. (OCINewCursor, OCIFreeCursor) You can always manage things directly with the query interface. I think he wants to manage things with the PHP interface. And you can't with the PostgreSQL functions provided. AFAIK. That's all I was saying, cheers, Andy