Re: function with array parameter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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@xxxxxxxxx>
To: Jean-Christophe Roux <jcxxr@xxxxxxxxx>
Cc: pgsql-php@xxxxxxxxxxxxxx
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@xxxxxxxxx <mailto:jcxxr@xxxxxxxxx>> 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!



[Index of Archives]     [Postgresql General]     [Postgresql Admin]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Yosemite Backpacking]     [Postgresql Jobs]

  Powered by Linux