[PHP-users 21184]Re: pgsqlconnectエラー
Tatsuo Ishii
t-ishii @ sra.co.jp
2004年 4月 8日 (木) 13:26:58 JST
石井です.
> > ただ,これでポート番号はどうやって指定するのでしょう?
>
> 上記の例では protocol が unix なのでポート番号を指定する必要はありま
> せんよね。
"unix"というのは,Unixドメインソケットで接続するのという意味ですよね?
だとすると,PEAR DBからpg_connectを呼び出すときに,「ポート番号」を渡
すことができるようになっていないと困ると思います.
# 結局ポート番号からUnixドメインソケットのファイル名をpg_connectから更
# に呼び出されるlibpqの関数で作っているだけなんですが.
> 汎用的な話ならば、DB::parseDSN() の先頭に以下のように書かれています
> ので、これの自分で必要な部分を埋めた配列を作ればよいです。
>
> $parsed = array(
> 'phptype' => false,
> 'dbsyntax' => false,
> 'username' => false,
> 'password' => false,
> 'protocol' => false,
> 'hostspec' => false,
> 'port' => false,
> 'socket' => false,
> 'database' => false,
> );
>
> DB::parseDSN() の役目は、DSN 文字列を解析して上記連想配列に値を格納
> することです。最初から配列を渡してやれば、解析処理が省かれるし、思うよ
> うに値がセットされて悩むこともないです。
ただこの場合でも,結局どうやってpg_connectに渡す引数が作られているのか
を意識しないと駄目だと思うのですよ.
たぶん,Unixドメインソケットを使って「ポート」番号5433で接続するために
は,
'protocol' => 'tcp'
'hostspec' => ''
'port' => '5433'
とかしないといけないと思うのですが.
--
Tatsuo Ishii
PHP-users メーリングリストの案内