Skip site navigation (1) Skip section navigation (2)

Re: function with array parameter

From: Jean-Christophe Roux <jcxxr(at)yahoo(dot)com>
To: andy(dot)shellam-lists(at)mailnetwork(dot)co(dot)uk, Talha Khan <talha(dot)amjad(at)gmail(dot)com>
Cc: pgsql-php(at)postgresql(dot)org
Subject: Re: function with array parameter
Date: 2006-11-08 21:52:16
Message-ID: 20061108215216.35832.qmail@web35309.mail.mud.yahoo.com (view raw or flat)
Thread:
Lists: pgsql-php
Hello,

Looks like it is best to forget about passing an array directly between php and postgresql and instead rely on some string.

thanks to all


----- Original Message ----
From: Andy Shellam (Mailing Lists) <andy(dot)shellam-lists(at)mailnetwork(dot)co(dot)uk>
To: Jean-Christophe Roux <jcxxr(at)yahoo(dot)com>; pgsql-php(at)postgresql(dot)org
Sent: Wednesday, November 8, 2006 4:37:22 PM
Subject: Re: [PHP] function with array parameter

You could do something like:

(where $source_array is your array to pass to the PGSQL function):

<?php
// start off the query string
$query = "select func_a_dummy(";

// for each element of the array add to the string
foreach ($source_array AS $func_parameter)
{
    $query .= "\"" . $func_parameter . "\", ";
}

// we'll end up with a trailing ", " on the end of the string due to the 
final parameter, so remove it
$query = substring($query, 0, strlen($query) - 2);

// and close of the query string
$query .= ");";
?>

Then send $query to the database.  That will create you something like 
(if $source_array contains "param1" and "param2"):

select func_a_dummy("param1", "param2");

Regards,

Andy.

Jean-Christophe Roux wrote:
> Hello,
>
> Thanks for the answer but the resource connection is optional and in 
> this script there is no ambiguity since there is only one connection. 
> I added the connection to pg_query any way and the script still fails. 
> I went through archives and saw that others had the same problem with 
> using a PHP arrays as a parameter to a Postgresql function. I have not 
> found a solution though; any thought?
>
> ----- Original Message ----
> From: Talha Khan <talha(dot)amjad(at)gmail(dot)com>
> To: Jean-Christophe Roux <jcxxr(at)yahoo(dot)com>
> Cc: pgsql-php(at)postgresql(dot)org
> Sent: Wednesday, November 8, 2006 3:25:29 PM
> Subject: Re: [PHP] function with array parameter
>
> Hi Jean,
>
> >>$result = pg_query($query);
>
> try it as follows
>
> $result=pg_query($database,$query);
>
> where
>
> $database=<database name>
>
> Regards,
> Talha Khan
>
> On 11/9/06, *Jean-Christophe Roux* <jcxxr(at)yahoo(dot)com 
> <mailto:jcxxr(at)yahoo(dot)com>> wrote:
>
>     Hello,
>     I have a function that I would like to call from a php script:
>
>     CREATE OR REPLACE FUNCTION a_dummy(arr_in text[])
>       RETURNS text AS
>     $BODY$
>     declare
>     begin
>         return arr_in[1];
>     end;
>     $BODY$
>       LANGUAGE 'plpgsql' VOLATILE;
>
>     and the php code would be something like that
>     $arr;
>     $arr[0] = "one";
>     $arr[1] = 'two';
>     $query = "select func_a_dummy($arr)";
>     $result = pg_query($query);
>     echo pg_fetch_result($result, 0, 0);
>
>
>     but the syntax is wrong. Any idea what I should do to make it work
>     Thank you
>
>
>
>
> !DSPAM:37,45524c9640412067911618! 


---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster






Responses

pgsql-php by date

Next:From: Andy Shellam (Mailing Lists)Date: 2006-11-08 21:54:40
Subject: Re: function with array parameter
Previous:From: Andy Shellam (Mailing Lists)Date: 2006-11-08 21:37:22
Subject: Re: function with array parameter

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group