Обсуждение: creating table w/ php help
I'm very new to php and PostgreSQL. I keep getting the following error
when I try to create a table:
Warning: Wrong parameter count for pg_exec() in
/var/www/html/elkan/createtable.php on line 23
The table, ghdsl could not be created
Here is the code I'm using:
<?php
// set variables
$tablename = "ghdsl";
$dbname = "testingdb";
$user = "testinguser";
$password = "xxxxxx";
$connect = "pg_connect($dbname, $user, $password)";
$query = "CREATE table $tablename (id INT UNSIGNED NOT NULL
AUTO_INCREMENT PRIMARY KEY, ip TEXT, customer TEXT, dslphone TEXT, date
TEXT, vpivci TEXT)";
if (pg_exec($dbname, $query, $connect))
{
print ("The table, $tablename was successfully created");
} else {
print ("The table, $tablename could not be created");
}
?>
thanks for any help.
On Fri, 19 Apr 2002, webmaster wrote:
> Warning: Wrong parameter count for pg_exec() in
> /var/www/html/elkan/createtable.php on line 23
> The table, ghdsl could not be created
>
> Here is the code I'm using:
>
> <?php
>
> // set variables
> $tablename = "ghdsl";
> $dbname = "testingdb";
> $user = "testinguser";
> $password = "xxxxxx";
>
> $connect = "pg_connect($dbname, $user, $password)";
Here is the first problem. $connect should be a resource, not a string.
Try this:
$connect = pg_connect ("dbname=$dbname user=$user
password=$password");
> $query = "CREATE table $tablename (id INT UNSIGNED NOT NULL
> AUTO_INCREMENT PRIMARY KEY, ip TEXT, customer TEXT, dslphone TEXT, date
> TEXT, vpivci TEXT)";
>
> if (pg_exec($dbname, $query, $connect))
Here is the second problem. By looking at the php manual for the pg-exec
function (changed to pg-query in php 4) I see that the correct usage is
pg_query (resource connection, string query)
Try changing your code to
if (pg_query($connect, $query))...
> {
> print ("The table, $tablename was successfully created");
> } else {
> print ("The table, $tablename could not be created");
> }
>
> ?>
If this doensn't work try consulting the online manual for php at
http://www.php.net/manual/en/
> $query = "CREATE table $tablename (id INT UNSIGNED NOT NULL > AUTO_INCREMENT PRIMARY KEY, ip TEXT, customer TEXT, dslphone TEXT, date > TEXT, vpivci TEXT)"; AUTO_INCREMENT is used in MySQL. With PostgreSQL you should use the keyword SERIAL. Also UNSIGNED is not used. > Here is the second problem. By looking at the php manual for the pg-exec > function (changed to pg-query in php 4) It *will* change from PHP 4.2.0 on. pg_exec() is still valid for all releases < 4.2.0. Regards Conni
thanks, that did it. Cornelia Boenigk wrote: > > $query = "CREATE table $tablename (id INT UNSIGNED NOT NULL > > AUTO_INCREMENT PRIMARY KEY, ip TEXT, customer TEXT, dslphone TEXT, > date > > TEXT, vpivci TEXT)"; > > AUTO_INCREMENT is used in MySQL. With PostgreSQL you should use the > keyword SERIAL. Also UNSIGNED is not used. > > > Here is the second problem. By looking at the php manual for the > pg-exec > > function (changed to pg-query in php 4) > It *will* change from PHP 4.2.0 on. pg_exec() is still valid for all > releases < 4.2.0. > > Regards > Conni > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster