Thread: Connection problem
Hi, I try to connect to a PostgreSQL database from my php script, and get the following error: Warning: Unable to connect to PostgreSQL server: FATAL 1: Database "www-data" does not exist in the system catalog. in /home/lao/proj/hajnalcsillag/www/classes/DBConnection.php on line 10 The code is: <? class DBConnection { var $con_string; function DBConnection() { $con_string = "dbname=hajnalcsillag user=lao password=abc123 host=localhost port=5432"; $ret = pg_connect( $this->con_string ); } } ?> I could solve part of the problem by creating a user and database called 'www-data'. Since I have several sites on the same server, I need more independent db-s, so this solution is not enough. This seems to be a configuration problem, but I don't know where to turn off this (security?) option. The versions are: PHP Version 4.1.0RC1 PostgreSQL 7.1.3 Apache/1.3.22 Debian sid Could anyone help me please? Thanks, Peter
What exactly are you trying to do here? Depending on what you really want to do here, you need to change your connection string to fit what you want. In order to connect to postgres, you must specify a database. If you do not want to connect to a database immediately, then you can use the default database (which is usually "template1"). Otherwise, if you don't indicate a database to which to connect, it will assume you are trying to connect to the user's database, which by default is the same name as the user. I'm assuming that your web server is running under the "www-data" user account. If you explain more in detail what you want to accomplish, we will be able to help better. -Dan : Hi, : I try to connect to a PostgreSQL database from my php script, and get the following error: : : Warning: Unable to connect to PostgreSQL server: FATAL 1: Database "www-data" does not exist in the system : catalog. in /home/lao/proj/hajnalcsillag/www/classes/DBConnection.php on line 10 : : The code is: : <? : : class DBConnection : { : var $con_string; : : function DBConnection() : { : $con_string = "dbname=hajnalcsillag user=lao password=abc123 host=localhost port=5432"; : $ret = pg_connect( $this->con_string ); : } : } : : ?> : : I could solve part of the problem by creating a user and database called 'www-data'. : Since I have several sites on the same server, I need more independent db-s, so this solution is not enough. : This seems to be a configuration problem, but I don't know where to turn off this (security?) option. : : The versions are: : PHP Version 4.1.0RC1 : PostgreSQL 7.1.3 : Apache/1.3.22 : Debian sid : : Could anyone help me please? : Thanks, Peter : : ---------------------------(end of broadcast)--------------------------- : TIP 5: Have you checked our extensive FAQ? : : http://www.postgresql.org/users-lounge/docs/faq.html : ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
I'm sorry, I didn't look at this very closely... just looked at the error and assumed.... It looks like your problem is actually your variable that you are passing into the pg_connect. When you are setting up your connection string, $con_string should be $this->con_string. It's giving you this error because it's not getting any parameters in pg_connect. -Dan : What exactly are you trying to do here? : : Depending on what you really want to do here, you need to change your : connection string to fit what you want. : : In order to connect to postgres, you must specify a database. If you do not : want to connect to a database immediately, then you can use the default : database (which is usually "template1"). Otherwise, if you don't indicate a : database to which to connect, it will assume you are trying to connect to : the user's database, which by default is the same name as the user. I'm : assuming that your web server is running under the "www-data" user account. : : If you explain more in detail what you want to accomplish, we will be able : to help better. : : -Dan : : : : Hi, : : I try to connect to a PostgreSQL database from my php script, and get the : following error: : : : : Warning: Unable to connect to PostgreSQL server: FATAL 1: Database : "www-data" does not exist in the system : : catalog. in /home/lao/proj/hajnalcsillag/www/classes/DBConnection.php on : line 10 : : : : The code is: : : <? : : : : class DBConnection : : { : : var $con_string; : : : : function DBConnection() : : { : : $con_string = "dbname=hajnalcsillag user=lao password=abc123 : host=localhost port=5432"; : : $ret = pg_connect( $this->con_string ); : : } : : } : : : : ?> : : : : I could solve part of the problem by creating a user and database called : 'www-data'. : : Since I have several sites on the same server, I need more independent : db-s, so this solution is not enough. : : This seems to be a configuration problem, but I don't know where to turn : off this (security?) option. : : : : The versions are: : : PHP Version 4.1.0RC1 : : PostgreSQL 7.1.3 : : Apache/1.3.22 : : Debian sid : : : : Could anyone help me please? : : Thanks, Peter : : : : ---------------------------(end of broadcast)--------------------------- : : TIP 5: Have you checked our extensive FAQ? : : : : http://www.postgresql.org/users-lounge/docs/faq.html : : : : : ---------------------------(end of broadcast)--------------------------- : TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org :
What exactly are you trying to do here? Depending on what you really want to do here, you need to change your connection string to fit what you want. In order to connect to postgres, you must specify a database. If you do not want to connect to a database immediately, then you can use the default database (which is usually "template1"). Otherwise, if you don't indicate a database to which to connect, it will assume you are trying to connect to the user's database, which by default is the same name as the user. I'm assuming that your web server is running under the "www-data" user account. If you explain more in detail what you want to accomplish, we will be able to help better. -Dan : Hi, : I try to connect to a PostgreSQL database from my php script, and get the following error: : : Warning: Unable to connect to PostgreSQL server: FATAL 1: Database "www-data" does not exist in the system : catalog. in /home/lao/proj/hajnalcsillag/www/classes/DBConnection.php on line 10 : : The code is: : <? : : class DBConnection : { : var $con_string; : : function DBConnection() : { : $con_string = "dbname=hajnalcsillag user=lao password=abc123 host=localhost port=5432"; : $ret = pg_connect( $this->con_string ); : } : } : : ?> : : I could solve part of the problem by creating a user and database called 'www-data'. : Since I have several sites on the same server, I need more independent db-s, so this solution is not enough. : This seems to be a configuration problem, but I don't know where to turn off this (security?) option. : : The versions are: : PHP Version 4.1.0RC1 : PostgreSQL 7.1.3 : Apache/1.3.22 : Debian sid : : Could anyone help me please? : Thanks, Peter : : ---------------------------(end of broadcast)--------------------------- : TIP 5: Have you checked our extensive FAQ? : : http://www.postgresql.org/users-lounge/docs/faq.html : ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
> > > >The code is: ><? > >class DBConnection >{ > var $con_string; > > function DBConnection() > { > $con_string = "dbname=hajnalcsillag user=lao password=abc123 host=localhost port=5432"; > $ret = pg_connect( $this->con_string ); > } >} > >?> > it's better to do it so $this>con_string="dbname....."; otherwise you run into big trouble cause $this->con_string =>GLOBAL $con_string=>local PHP is nto so stble with such declarations (real-tie experience) Ewald