Re: See postgre tables from PHP code

Andrew McMillan <[email protected]>
Newsgroups gmane.comp.db.postgresql.php
Message-ID <[email protected]>
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.
------------------------------------------------------------------------



-- 
Sent via pgsql-php mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.