Re: pasar variables array de php a funcion plpgsql

From: "Carlos Mendez" <lucas1850(at)gmail(dot)com>
To: jam1138 <jam1138+pgsql(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: pasar variables array de php a funcion plpgsql
Date: 2008-04-04 13:12:36
Message-ID: 4610af1f0804040612x6fdf7cbdp42521d2dc06213e1@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola jam1138, gracias por la respuesta,

si despues de que envie el mensaje me di cuenta que no seria tan dificil
volverla a una array que entienda el postgresql, pero pensaba que habria
alguna funcion que convirtiera el array de php a array de pgsql, pero
todavia no he terminado, ya converti el array pero falta probarlo con la
funcion,

En cuanto a los enlaces, aqui te paso algunos, espero que te sirvan:

www.sobl.org/traducciones/postgresql-develdoc/version-pdf.pdf.gz
http://foobar.cl/~chepito/software/PL_pgSQL.pdf
http://archives.postgresql.org/pgsql-es-ayuda/2008-04/msg00070.php

gracias de nuevo,
saludos.

El día 3/04/08, jam1138 <jam1138+pgsql(at)gmail(dot)com <jam1138%2Bpgsql(at)gmail(dot)com>>
escribió:
>
> Saludos Carlos.
>
> Verás, no tengo experiencia con funciones en Postgres (pásame un
> enlace ¿no? ;-)) pero, al mandar la variable como lo haces ahora, solo
> estas indicando es "un Array de PHP", entonces tu función en plpgsql
> debería poder tratar ese tipo de valor... cosa que no sucede y dudo se
> pueda y no veo por qué tendría que ser.
>
> Entonces, si entiendo bien esto, lo que deberías hacer es construir tu
> query tal cual la ejecutas desde psql. Puedo sugerir algo como:
>
> $matriz=array('dfs','sdf','bc'); // Tu array
> $pgMatriz = "array['".implode("', '", $matriz)."']"; // La "transformación
> $query = "select mostrar_array(".$pgMatriz.")"; // Obtienes: select
> mostrar_array(array['dfs', 'sdf', 'bc'])
>
> Espero te sirva, y es en serio lo del enlace :-P. Nos vemos.
>
>
> 2008/4/3 Carlos Mendez <lucas1850(at)gmail(dot)com>:
> > Hola, que tal,
> > estoy intentado pasar una variable tipo array desde php a funcion
> plpgsql
> > tengo el siguiente script:
> >
> > <?php
> > include_once('conexion_pgsql.php');
> > $matriz=array('dfs','sdf','bc');
> > print_r($matriz);
> > $query = "select mostrar_array($matriz)";
> > $datos = $conn1->Execute("$query");
> > ?>
> >
> > el error que me muestra es el siguiente:
> >
> > (postgres7): select mostrar_array(Array)
> >
> > Warning: pg_query() [function.pg-query]: Query failed: ERROR: syntax
> error
> > at or near ")" at character 27 in C:\Archivos de programa\Apache
> > Group\Apache2\htdocs\adodb\drivers\adodb-postgres7.inc.php on line 113
> > -1: ERROR: syntax error at or near ")" at character 27
> >
> > supongo que debe ser la sintaxis a algo parecido, porque cuando ejecuto
> > desde el psql funciona bien:
> >
> > base3=# select mostrar_array(array['dfs','sdf','bc']);
> >
> > como se ve existe una diferencia entre php y pgsql al declarar los array
> > en php: array('dfs','sdf','bc') se utiliza ()
> > en pgsql: array['dfs','sdf','bc'] se utiliza []
> >
> > como puedo pasar la variable tipo array $matriz a plpgsql,
> > gracias de antemano por la ayuda,
> > saludos.
> >
> >
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message MIGUEL CANCHAS 2008-04-04 13:58:13 RE: Problemas para ingresar datos desde un scrip t.
Previous Message Carlos Mendez 2008-04-04 12:57:23 Re: transacciones y funciones plpgsql