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/
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 |