[PHP-users 1162] Re: PEARのオブジェクトについて

Satoshi Yamada php-users@php.gr.jp
Mon, 13 Aug 2001 13:01:10 +0900


やまだ@神戸市 です。

> 正確には、 "$dsn = 'pgsql://sasaki@localhost/sasaki';" です。
> パスワードは特に設定していません。
> parseDSN関数の処理を見つつ、記述方法をいろいろ試しているのですが
> エラーが消えません。

  $dsn = 'pgsql://sasaki@unix+localhost/sasaki';

ではどうでしょう?

便乗質問なんですけど、DB_pgsql クラスってバグありません?
# バグは言い過ぎのような気もしますが...

DB_pgsql::connect() の、まさに↑のような DSN から、
pg_connect() に渡す文字列を作っている部分で
親クラスの DB::parseDSN() で解析された値を isset() で
各値の指定があるかを判定してます。

が、DB::parseDSN() で

        $parsed = array(
            'phptype'  => false,
            'dbsyntax' => false,
            'protocol' => false,
            'hostspec' => false,
            'database' => false,
            'username' => false,
            'password' => false
        );

って初期化してるので isset() が偽になることはないような
気がするのですが...

おかげで public な(アクセス権を持つ) DB に

  $db = DB::connect('pgsql://localhost/db');

なんて繋ごうとしてちょっとだけハマりかけました。
-- 
やまだ <s-yamada@kcc.zaq.ne.jp>