Re: function with array parameter
Re: function with array parameter
От:
Alan Hodgson <ahodgson@simkin.ca>
Дата:
> On 11/9/06, Jean-Christophe Roux 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 /.
function with array parameter
От:
Jean-Christophe Roux <jcxxr@yahoo.com>
Дата:
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
Re: function with array parameter
От:
Jean-Christophe Roux <jcxxr@yahoo.com>
Дата:
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
Re: function with array parameter
От:
Jean-Christophe Roux <jcxxr@yahoo.com>
Дата:
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
Re: function with array parameter
От:
"Andy Shellam (Mailing Lists)" <andy.shellam-lists@mailnetwork.co.uk>
Дата:
You could do something like:
(where $source_array is your array to pass to the PGSQL function):
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
> To: Jean-Christophe Roux
> 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=
>
> Regards,
> Talha Khan
>
> On 11/9/06, *Jean-Christophe Roux* > 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!
Re: function with array parameter
От:
"Andy Shellam (Mailing Lists)" <andy.shellam-lists@mailnetwork.co.uk>
Дата:
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)
> To: Jean-Christophe Roux ; 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):
>
> // 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
> > To: Jean-Christophe Roux
> > 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=
> >
> > Regards,
> > Talha Khan
> >
> > On 11/9/06, *Jean-Christophe Roux* > > 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!
Re: function with array parameter
От:
"Talha Khan" <talha.amjad@gmail.com>
Дата:
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