Problemas con las CONSULTAS en la base de datos

From: "Antonio Garcia" <angarben(at)hotmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Problemas con las CONSULTAS en la base de datos
Date: 2007-07-04 23:15:02
Message-ID: BAY115-F97866CFDF5C2691617A11DD030@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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/

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message DiegoF 2007-07-04 23:25:54 Re: Problemas con las CONSULTAS en la base de datos
Previous Message Julio Cesar Rodriguez Dominguez 2007-07-04 22:13:22 Pl/Java