[PHP-users 3409] PostgreSQL接続で大文字データベース名へのpg_connect

土屋賢治 php-users@php.gr.jp
Thu, 08 Nov 2001 14:17:21 +0900


お世話になっております。
つちやです。

PostgreSQLとの接続でpg_connectを使いますが、
データベース名の大文字、小文字の区別がないために
接続エラーになってしまいます。
PostgreSQLで大文字で作成したDBについては
どのように対応すればよいのでしょうか?
(※PostgreSQL上では大文字 or 小文字を区別あり)

$database = "OB1";
$connect = pg_connect("localhost","5432","","",$database);
if( $connect == false ) 
{
	echo "Error : Can not connect database[$database]!";
}
とすると下記のように

Warning: Unable to connect to PostgresSQL server: 
FATAL 1: Database "ob1" does not exist in the system catalog. 
in /home/apache/htdocs/DBinex/inex.php3 on line 31
"ob1"がないというエラーになります(実際は大文字の"OB1"なので)。

一応、大文字変換として下記を追加してみましたが↓
$database = strtoupper($database);
だめでした。
直接書き込んでも×です。
$connect = pg_connect("localhost","5432","","","OB1");

あと、小文字で"web"というデータベースを作成した場合では
OKでしたので接続環境については晴れたと思っています。
$database = "web";
$connect = pg_connect("localhost","5432","","",$database);

バージョンはphp-3.0.18-i18n-ja-2です。

最悪、データベース名を小文字にすれば対応できますが、
システム変更に手間がかかるので何かいい方法があればと思いました。
どなたかご存知の方いらっしゃいますか。