template0

From: "Marcel Wolf" <mwolfs(at)comcast(dot)net>
To: <pgsql-novice(at)postgresql(dot)org>
Subject: template0
Date: 2004-02-05 23:32:59
Message-ID: 019001c3ec40$674edeb0$6401a8c0@Lightning
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Thanks Guys!
Let me be a little for specific. I am trying to make a php/pg/apache app
that when run checks for its database and if not found creates it. To do
this I first connect to pg first under template1 and check for my
database in pg_database. If found I close and connect to that database.
If not found I create it while connected to template1 and then close and
connect under my database. Here is the code. Maybe I need to post this
to the php site. But when I look at using a database I need to connect
to it with a user and dbname. I have been using template1 successfully
except any new databases after the first one inherit the tables from the
1st database and I though the way to get around this was to use
template0? Am I out in left field about all this?
Thanks
Marcel


<?php
$pgtemplate="user=postgre dbname=template0";
$pguser="user=postgre dbname=recipe";
$db="recipe";

$link=pg_connect($pgtemplate) or die ("Couldn't connect to
template try again.<br>".pg_last_error());

$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.
$max_array=pg_numrows($result);
$got_database = false;
for ($i=0;$i<$max_array;$i++) {
$database= pg_fetch_array ($result) or print
("Can't get the array of databases<br>");
//print (" the 1st database is
{$database['datname']}.<br>");
if ($database['datname'] == $db) {
$got_database = true;
}
}
if ($got_database == false) {
// Need to build my database
print "No database<br>";
pg_query ("CREATE DATABASE $db") or die ("Could
not create database".pg_last_error());
// Created new database. disconnect from the
template1 and reconnect to the new database.
pg_close ($link);

$link=pg_connect($pguser) or die ("Couldn't
connect to the new database<br>".pg_last_error());


$query = "CREATE TABLE cats (
cat character varying(25) NOT NULL,
jpg character varying(12) NOT NULL)
";

pg_query($query) or
die ("Query Failed.<br>".pg_last_error());

$query = "CREATE TABLE recipe (
noo SERIAL,
nam character varying(50) NOT NULL,
cat character varying(25) NOT NULL,
ing text NOT NULL,
ins text NOT NULL,
PRIMARY KEY (noo)
)";

pg_query($query) or
die ("Query Failed.<br>".pg_last_error());

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message kynn 2004-02-06 00:25:17 Where do I start?
Previous Message Josh Berkus 2004-02-05 22:42:26 Re: template0