Thread: function with array parameter
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
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
Hi Jean,
>>$result = pg_query($query);
try it as follows
$result=pg_query($database,$query);
where
$database=<database name>
>>$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@yahoo.com> wrote:
Talha Khan
On 11/9/06, Jean-Christophe Roux <jcxxr@yahoo.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
> On 11/9/06, Jean-Christophe Roux <jcxxr@yahoo.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); A PHP array doesn't translate to a PostgreSQL array. You have to build up a string to pass to the function ( ie. '{"value1","value2"}' ) . -- "Emacs is great. But hang onto vim, because you'll still need a decent text editor." - seen on /.
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?
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.amjad@gmail.com>
To: Jean-Christophe Roux <jcxxr@yahoo.com>
Cc: pgsql-php@postgresql.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>
From: Talha Khan <talha.amjad@gmail.com>
To: Jean-Christophe Roux <jcxxr@yahoo.com>
Cc: pgsql-php@postgresql.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@yahoo.com> wrote:
Talha Khan
On 11/9/06, Jean-Christophe Roux <jcxxr@yahoo.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
unsubscribe
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.amjad@gmail.com> > To: Jean-Christophe Roux <jcxxr@yahoo.com> > Cc: pgsql-php@postgresql.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@yahoo.com > <mailto:jcxxr@yahoo.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!
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
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.shellam-lists@mailnetwork.co.uk>
To: Jean-Christophe Roux <jcxxr@yahoo.com>; pgsql-php@postgresql.org
Sent: Wednesday, November 8, 2006 4:37:22 PM
Subject: Re: [PHP] function with array parameter
From: Andy Shellam (Mailing Lists) <andy.shellam-lists@mailnetwork.co.uk>
To: Jean-Christophe Roux <jcxxr@yahoo.com>; pgsql-php@postgresql.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.amjad@gmail.com>
> To: Jean-Christophe Roux <jcxxr@yahoo.com>
> Cc: pgsql-php@postgresql.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@yahoo.com
> <mailto:jcxxr@yahoo.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
(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.amjad@gmail.com>
> To: Jean-Christophe Roux <jcxxr@yahoo.com>
> Cc: pgsql-php@postgresql.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@yahoo.com
> <mailto:jcxxr@yahoo.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
Yes - PHP arrays will inevitably be different to PostgreSQL arrays. Jean-Christophe Roux wrote: > 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.shellam-lists@mailnetwork.co.uk> > To: Jean-Christophe Roux <jcxxr@yahoo.com>; pgsql-php@postgresql.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.amjad@gmail.com> > > To: Jean-Christophe Roux <jcxxr@yahoo.com> > > Cc: pgsql-php@postgresql.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@yahoo.com > > <mailto:jcxxr@yahoo.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 > > > > > > > > > > > > > ---------------------------(end of broadcast)--------------------------- > TIP 2: Don't 'kill -9' the postmaster > > > !DSPAM:37,455251b340411983042122!