Thread: Querying the system catalog

Querying the system catalog

From
"Marcel Wolf"
Date:

Hello group

I am trying to follow through on advice I received from you earlier. I would like to check for my database when I logon and if it is not there create it( I am using php to write web apps). I am able to connect to the template1 and query for pg_database. But I am getting a parse error on the following (XXX).  

 

Error message:

“Expected T_STRING or T_VARIABLE”

 

 

 

Code :

$link=pg_connect('user=marcel dbname=template1') or die ("Couldn't connect to template1 try again.<br>");

           

            $query = "SELECT * FROM pg_database";

 

            $result = pg_query ($query) or die ("Couldn't get the database names".pg_last_error());

 

            // If it worked get the database names.

           

            $database= pg_fetch_array ($result) or print ("Can't get the array of databases<br>");                     

                       

XXX       print (" the 1st database is $database['datname'].<br>");  

                       

            die ("Finshed my test.<br>");     

 

Is this the correct way to query the system catalog for the existing databases? Is this questions addressed to the wrong group and maybe should be addressed to the php_pgsql group?

Again thanks for the help

Marcel Wolf      

Re: Querying the system catalog

From
Bruno LEVEQUE
Date:
Hi,

I am not a guru of php, so ...

But, if it can help you, here is a little code I use :

$conn=pg_connect("host=localhost user=bruno dbname=agenda");
if (!$conn) {
   echo "Couldn't connect to agenda.<BR>";
   exit;
}

$query="SET DATESTYLE TO PostgreSQL,European";
# execution de la requete
pg_query($conn, $query);

$query="SELECT * from agenda ";

 # execution de la requete
$result = pg_query($conn, $query);

$arr = pg_fetch_all($result);

for ($i=0; $i<$NbLigne;$i++)
{
   if ($arr[$i]["heures"] == ....
....
and so


Bruno

On Tue, 27 Jan 2004, Marcel Wolf wrote:

> Hello group
> I am trying to follow through on advice I received from you earlier. I
> would like to check for my database when I logon and if it is not there
> create it( I am using php to write web apps). I am able to connect to
> the template1 and query for pg_database. But I am getting a parse error
> on the following (XXX).
>
> Error message:
> "Expected T_STRING or T_VARIABLE"
>
>
>
> Code :
> $link=pg_connect('user=marcel dbname=template1') or die ("Couldn't
> connect to template1 try again.<br>");
>
>             $query = "SELECT * FROM pg_database";
>
>             $result = pg_query ($query) or die ("Couldn't get the
> database names".pg_last_error());
>
>             // If it worked get the database names.
>
>             $database= pg_fetch_array ($result) or print ("Can't get the
> array of databases<br>");
>
> XXX       print (" the 1st database is $database['datname'].<br>");
>
>             die ("Finshed my test.<br>");
>
> Is this the correct way to query the system catalog for the existing
> databases? Is this questions addressed to the wrong group and maybe
> should be addressed to the php_pgsql group?
> Again thanks for the help
> Marcel Wolf
>

Bruno LEVEQUE
System Engineer
SARL NET6D
bruno.leveque@net6d.com
http://www.net6d.com

Re: Querying the system catalog

From
Andre Dubuc
Date:
Hi Marcel,

I believe your error is a result of lack of braces around
$database['datname']. Try:

print (" the 1st database is {$database['datname']}.<br>");

Hth,
Andre

On Tuesday 27 January 2004 05:07 pm, you wrote:
> Hello group
> I am trying to follow through on advice I received from you earlier. I
> would like to check for my database when I logon and if it is not there
> create it( I am using php to write web apps). I am able to connect to
> the template1 and query for pg_database. But I am getting a parse error
> on the following (XXX).
>
> Error message:
> "Expected T_STRING or T_VARIABLE"
>
>
>
> Code :
> $link=pg_connect('user=marcel dbname=template1') or die ("Couldn't
> connect to template1 try again.<br>");
>
>             $query = "SELECT * FROM pg_database";
>
>             $result = pg_query ($query) or die ("Couldn't get the
> database names".pg_last_error());
>
>             // If it worked get the database names.
>
>             $database= pg_fetch_array ($result) or print ("Can't get the
> array of databases<br>");
>
> XXX       print (" the 1st database is $database['datname'].<br>");
>
>             die ("Finshed my test.<br>");
>
> Is this the correct way to query the system catalog for the existing
> databases? Is this questions addressed to the wrong group and maybe
> should be addressed to the php_pgsql group?
> Again thanks for the help
> Marcel Wolf