Re: RV: calling a pl/pgsql function with array in argument

From: "Papp, Gyozo" <pgerzson(at)freestart(dot)hu>
To: "Ruben Vivas" <ruben(dot)vivas(at)explorersystem(dot)com>, <pgsql-php(at)postgresql(dot)org>
Subject: Re: RV: calling a pl/pgsql function with array in argument
Date: 2002-04-22 22:53:20
Message-ID: 002d01c1ea50$805c4b20$01fdfea9@jaguar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-php

this is a little bit hidden information somewhere in the manual.
Array types is the same the corresponding data type but
prepended with an underscore '_', e.g:

_int4
_date
_smallint

btw, you cannot pass PHP array to plpgsql function. You need to
convert it to string like:

{1,2,23,45}

{ -- start array
,, -- comma separated values
} -- closing tag

here is my quote function to PG:

function quote($var, $type, $empty_null = TRUE)
{
if ( empty($var) && $empty_null ){
return 'NULL';
}
if ( $type{0} == '_' ){
$type = substr($type, 1);
$temp = "'{";
foreach ( $var as $item ){
$temp .= quote($item, $type).',';
}
$temp = substr($temp, 0, -1);
return $temp ."}'";
}
switch ( $type ){
case 'int':
return intval($var);
case 'bool':
return ($var ? "'t'::bool": "'f'::bool");
case 'date':
if ( is_numeric($var) ) { // echo timestamp-kent kezeli
return date("'Y-m-d'", $var);
}
// ha ez sem, akkor sima szovegkent tovabbadja
case 'text':
if (!get_magic_quotes_gpc()) {
$var = addslashes($var);
}
return '\''.$var.'\'';
default: trigger_error("unknown type : $type ($value)", E_USER_ERROR);
}
}
----- Original Message -----
From: "Ruben Vivas" <ruben(dot)vivas(at)explorersystem(dot)com>
To: <pgsql-php(at)postgresql(dot)org>
Sent: Monday, April 22, 2002 10:18 PM
Subject: [PHP] RV: calling a pl/pgsql function with array in argument

| Hello, i am tryin to pass an array like argument to a pl/pgsql function but
| i can not find the correct data type in te function.
|
| i am using php.
|
| ex: $dato[][] is the array using php, and i need call:
|
| 1. $res = fn_vea ($dato); ?????
|
| 2. in pl/pgsql CREATE FUNCTION fn_vea (integer [][]) RETURNS varchar (25) AS
| .........
|
|
| does it work??
| thank you
|
|
| ---------------------------(end of broadcast)---------------------------
| TIP 6: Have you searched our list archives?
|
| http://archives.postgresql.org

In response to

Browse pgsql-php by date

  From Date Subject
Next Message Miguel Carvalho 2002-04-23 09:12:41 Re: global variable problem
Previous Message Ruben Vivas 2002-04-22 20:18:45 RV: calling a pl/pgsql function with array in argument