Re: Problemas con las CONSULTAS en la base de datos

From: DiegoF <difer1982(at)gmail(dot)com>
To: "Antonio Garcia" <angarben(at)hotmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problemas con las CONSULTAS en la base de datos
Date: 2007-07-04 23:25:54
Message-ID: efb20b010707041625u365ff8a3vbd7940341c37ce07@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 7/4/07, Antonio Garcia <angarben(at)hotmail(dot)com> wrote:
>
> Problemas con las CONSULTAS en la base de datos
>
>
> Tengo unas paginas en PHP que conectan con MySQL y funcionan muy bien.
> El tema es que necesito utilizar la extensión Postgis de Postgre y por
> ello
> uso Postgresql
>
> Con php conecto la base de datos perfectamente y me sale el texto de Se ha
> realizado la conecxión
>
>
> <?php
>
> $host = "localhost";
> $db = "prueba";
> $user = "juanra";
> $password = "juanra";
>
> $connection = "host=$host dbname=$db user=$user password=$password";
>
> if (!$connection) {
> die ("Could not open connection to database server");
> } else {
> echo ("Se ha realizado la conecxión");
> }
>
> Pero cuando hago pg_query ... ahí deja de funcionar.
>
> query = "SELECT * FROM lt";
> $result = pg_query($query, $connection);
> if (!$result) {
> echo "Ha ocurrido un error.\n";
> exit;
> }
>
> ?>
>
> </body>
> </html>
>
>
> devolviendo esto:
>
> Se ha realizado la conecxión
> Warning: pg_query(): supplied argument is not a valid PostgreSQL link
> resource in C:\ms4w\www\ejem07bbbConsulta base datos POSTGRES.php on line
> 31
> Ha ocurrido un error.
>
>
>
> Saludos,
> -----------
> Antonio García Benlloch
>
> Correo:
> angarben(at)hotmail(dot)com
> angarben(at)topo(dot)upv(dot)es
>
> Web:
> http://personales.alumno.upv.es/~angarben
>
>
> >From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
> >To: Ricardo David Carrillo Sánchez <ricardo(dot)carrillo(at)yahoo(dot)com(dot)mx>
> >CC: pgsql-es-ayuda(at)postgresql(dot)org, David Carrillo Sanchez
> ><davxoc(at)gmail(dot)com>
> >Subject: Re: [pgsql-es-ayuda] Ayuda: Como escribir cursores en plperl?
> >Date: Wed, 4 Jul 2007 16:16:21 -0400
> >
> >Ricardo David Carrillo Sánchez escribió:
> > > Hola a todos!! estuve investigando como utilizar plperl para crear
> > > funciones procedurales mediante perl,pero me surge una duda, esperando
> > > que uds, me pudieran ayudar,
> > >
> > > he tratado de escribir una funcion que me permite pasar datos de una
> > > tabla a otra, tratando de normalizarla en el camino, de lo siguiente
> > > me queda esot :
> >
> >Bueno, esta todo malo porque estas mezclando PL/pgSQL con Perl y con
> >SQL. De partida no puedes usar DECLARE, ni darle instrucciones SQL
> >directamente; el codigo que va es totalmente Perl. Mira abajo:
> >
> > > CREATE OR REPLACE FUNCTION apellidos() RETURNS text AS $$
> > > DECLARE
> > > curselect CURSOR FOR select nombrec,apel,cargo,enlace,idpgp from
> >permiso;
> > > curinsert refcursor;
> > > my $pgp=null;
> > > while($row=spi_fetchrow(curselect))
> > > {
> > > FETCH curdata INTO nombre,apell,link,gpg;
> > > @apellidos=split(/ /,apell);
> > > $pgp=(!defined gpg)?'NULL':pgp;
> > > OPEN curinsert FOR EXECUTE "INSERT INTO
> >posgrado.personal(nombre,apellidop,apellidom,cargo,idpgp,enlaceins)
> >VALUES('nombre','$apellidos[0]','$apellidos[1]','link','$pgp')";
> > > CLOSE curinsert;
> > > }
> > > CLOSE curselect;
> > > return undef;
> > > $$ LANGUAGE plperl;
> >
> >En plperl no es necesario usar cursores de esa forma. Puedes usar
> >spi_query() y spi_fetchrow(). Creo que tu ejemplo seria algo mas o
> >menos como esto
> >
> >CREATE OR REPLACE FUNCTION apellidos() RETURNS text AS $$
> > my $foo = spi_query(" select nombrec,apel,cargo,enlace,idpgp from
> >permiso");
> > while (defined $row = spi_fetchrow($foo)) {
> > spi_exec_query("insert into ... ");
> > }
> >
> >$$;
> >
> >
> >Pero lo peor es que tu ejemplo no tiene sentido hacerlo con una funcion.
> >Puedes hacer
> >
> >insert into posgrado.personal (nombre, apellidop, apellidom, ...)
> > select nombrec, split_part(apel, ' ', 1), split_part(apel, ' ', 2),
> ...
> > from permiso;
> >
> >y los inserta todos de una sola vez.
> >
> >Asi que si tu funcion resulta ser muy lenta, no te quejes! Ya sabes
> >como se hace rapido.
> >
> >--
> >Alvaro Herrera
> http://www.CommandPrompt.com/
> >The PostgreSQL Company - Command Prompt, Inc.
> >--
> >---------------------------(fin del mensaje)---------------------------
> >TIP 4: No hagas 'kill -9' a postmaster
>
> _________________________________________________________________
> ¿Estás pensando en cambiar de coche? Todas los modelos de serie y extras
> en
> MSN Motor. http://motor.msn.es/researchcentre/
>
> --
> ---------------------------(fin del mensaje)---------------------------
> TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>

Hola, no se si sea eso, pero me gustaria ver como se conecta al postgres, no
se si mi respuesta este mal, pero bueno mas adelante sabre. yo uso:

$base = pg_connect("host=$nom_host dbname=$nom_bd") or die (fputs($stdlog,
"No se pudo establecer conexion en ($nom_host) con ($nom_bd)\n"));

no se si usted se este conectando a postgres de esta manera.

--

//Si la ingorancia es una bendicion, yo debo ser dios//

//DiegoF//

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message usuario anonimo 2007-07-05 00:37:38 Re: Problemas con las CONSULTAS en la base de datos
Previous Message Antonio Garcia 2007-07-04 23:15:02 Problemas con las CONSULTAS en la base de datos