On Mon, 2008-11-10 at 05:04 +0100, Félix Sánchez Rodríguez wrote:
> Hi everybody:
>
> I'm relatively new to PHP programming and I was recommended to use
> PostgreSQL as the site's database. However I haven't able to see my DB's
> tables from PHP. Here is my (very simple, I think) code:
>
> $pg = pg_connect("host=localhost port =5432 dbaname = ATM user=postgres
> password = mypassword");
> pg_query($pg,"select nick,contrasenna,nombre,apellidos from usuarios");
>
> Beside, I opened my PostgreSQL interface, called pgAdmin and run the same
> query inside the ATM database and the error was the same: "relation
> 'usuarios' was not found". It's like something else was needed to access the
> DB tables.
Is it possible that the tables are in a different schema?
For example, on a Mediawiki installation I have:
davical_wiki=# \d
No relations found.
davical_wiki=# set search_path TO 'mediawiki';
SET
davical_wiki=# \d
List of relations
Schema | Name | Type | Owner
-----------+-----------------------+----------+------------------
mediawiki | archive | table | davical_wikiuser
mediawiki | category | table | davical_wikiuser
mediawiki | category_id_seq | sequence | davical_wikiuser
...
You can refer to tables in a different schema by prefixing the table
name with the schema name and '.', e.g. mediawiki.archive
davical_wiki=# \d mediawiki.archive
Table "mediawiki.archive"
Column | Type | Modifiers
---------------+--------------------------+--------------------
ar_namespace | smallint | not null
ar_title | text | not null
...
The same prefixing syntax should work. The same 'set search_path ...'
syntax should also work if you do that after the pg_connect call.
If you're in psql, too, tab-completion should work, so if you go
\d<space><tab><tab> you will see a list of schema, like:
davical_wiki=# \d
information_schema. pg_catalog. pg_toast. public.
mediawiki. pg_temp_1. pg_toast_temp_1.
If I did that after setting the search path the autocomplete finds all
the tables in the mediawiki schema also.
Cheers,
Andrew.
------------------------------------------------------------------------
andrew (AT) morphoss (DOT) com +64(272)DEBIAN
Q: How much does it cost to ride the Unibus?
A: 2 bits.
------------------------------------------------------------------------