Re: PostgreSQL + PHP

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Maritza Parra <database_tallersoftware(at)yahoo(dot)es>
Cc: Mario Jiménez Carrasco <mario(dot)carrasco(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: PostgreSQL + PHP
Date: 2005-08-04 16:12:21
Message-ID: c2d9e70e05080409123cb98958@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 8/4/05, Maritza Parra <database_tallersoftware(at)yahoo(dot)es> wrote:
> Hola Mario,
> actualmente estoy trabajando con php y postgresql bajo windows y no he
> tenido problemas, aki van dos tips:
> 1- hay un paquete llamado apache2triad, que trae php, postgresql y apache2.
>
> http://sourceforge.net/projects/apache2triad
>
> Instalas eso y keda todo listo, es lo maximo!!!. En el administrador de
> apache2triad tienes un conjunto de herramientas con las que puedes por
> ejemplo testear la conexion entre php y postgresql, ahi mismo tienes el
> codigo de como hacerlo.
>

interesante... gracias por este dato maritza

> 2.- revisando tu codigo, hay dos detalles, el primero tiene que ver con la
> funcion pg_Exec, yo utilizo pg_query, vee el siguiente link:
>
> http://www.ulfix.net/index.php?option=com_content&task=view&id=404&Itemid=114&limit=1&limitstart=1
>
> y segundo, en postgresql se cada tabla esta dentro de un esquema los que a
> su vez estan dentro de la base de datos, entonces cuando llamas a la tabla
> hay que hacer referencia a ella junto al esquema en donde esta, mira aqui
> hay un ejemplo de mi codigo:
>
> $dbname = "prueba";
> $dbuser = "postgres";
> $dbpass = 1111;
> $dbtab = "nombre_esquema.nombre_tabla";
> $link = pg_connect("host=$dbhost dbname=$dbname user=$dbuser
> password=$dbpass") or die ("Could not connect to $dbname on $dbhost with
> $dbuser@".$_SERVER[REMOTE_ADDR]);
>
> $sql = "SELECT * FROM $dbtab";
>
> $result = pg_query($sql);
> while ($line = pg_fetch_assoc($result)) {
> echo "<tr><td class=tdd>".$line['direccion']."&nbsp;</td>";
> echo "<td class=tdl>".$line['pais']."&nbsp;</td>";
> echo "<td class=tdd>".$line['id']."&nbsp;</td>";
> echo "<td class=tdl>".$line['ciudad']."&nbsp;</td></tr>";
> }
>

otra opcion con respecto a los esquemas es setear la variable
search_path que le indica a postgres en que esquemas buscar el nombre
de la tabla... obvio que si tienes 2 tablas con el mismo nombre pero
en distintos esquemas debes usar lasugerencia de maritza a la
fuerza...

el search_path se puede setear

1) con una sentencia SET search_path a nivel de backend
2) a nivel de usuario: ALTER USER usuario SET search_path {TO | = }
'esquema1', 'esquema2' [, 'esquema3' .....];
3) a nivel de base de datos: ALTER DATABASE base_datos SET search_path
{TO | = } 'esquema1', 'esquema2' [, 'esquema3' .....];

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2005-08-04 16:18:09 RE: Bajar el Tiempo de Respuesta de los Query
Previous Message Edwin Quijada 2005-08-04 16:08:02 Re: [Fwd: Cluster para procesamiento]