• 締切済み

PostgresとPHPが接続できない

PostgreSQLとPHPがどうあがいてもつながりません。pg_connectのところで接続エラーになります。Postgresの権限、PORTの問題、いろいろ考えたのですが後は、Postgres とPHPのバージョン、ApacheのバージョンとPostgresのバージョンの問題かなと思うのですが、PHPとPostgresをお使いの方でバージョンは、どのバージョンだとつながるか教えていただけないでしょうか?環境はWindowsXPです。

みんなの回答

  • tecinfo
  • ベストアンサー率52% (32/61)
回答No.3

先の回答にPHPのマニュアルを載せたのは 新: resource pg_connect ( string $connection_string [, int $connect_type] ) 古: resource pg_connect("host", "port", "options", "tty", "dbname") PHPのバージョンによって、pg_connect関数の引数が異なるようなのですが、そのせいで、host名="port=5432"とPHPが解釈している、ということはありませんか? あと考えられるのは、自宅から会社へということなのですが、PostgreSQLサーバ側のpg_hba.confファイルの設定(+ファイアウォール等)で、自宅からの接続を許可していますか? 会社の場合、社外からの接続は閉じている場合も多いのではないか、と思いました。 バージョンの問題ですが、PHPはPostgreSQL6.5以上に対応しています。 PHPはPostgreSQLクライアントのC言語インタフェースであるlibpqを利用してクエリを発行しますので、PostgreSQLオプションを付けて無事PHPがインストールできれば、PHPとPostgreSQLのバージョン間の問題は無いかと思います。

参考URL:
http://www.postgresql.jp/document/pg824doc/html/auth-pg-hba-conf.html
cdv65290
質問者

お礼

ありがとうございます。疑問が解決しました。私の家のパソコンは、PHPのVERが5.2.3で最新にちかいものをつかっていました。接続コマンドがVERSIONによって違うとは思いませんでした。

  • tecinfo
  • ベストアンサー率52% (32/61)
回答No.2

「ホスト名 "port=5432"を正しく変換できない」って言われているので、(そりゃ、接続できないわな・・・)pg_connect関数の引数が間違っているのでは?

参考URL:
http://jp2.php.net/manual/ja/function.pg-connect.php
cdv65290
質問者

補足

ところが、会社のLANでは、つながるのです。会社の電子日誌のPOSTGRESの接続コマンドと同じコマンドを使って家のパソコンにつなごうとしたのです。 でも家のパソコンでは、つながりませんでした。まあ確かにport=5432がだめよといっているのはわかるのですが、なぜだめよなのかがわからないのです。会社のホストパソコンもウインドウズXPですし、あと考えられるのは、PHPのバージョンとPOSTGRESのバージョンの違いかなあと思っているのですが。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

> pg_connectのところで接続エラーになります。 どういったエラーメッセージが出ますか? メッセージの正確な内容を教えてください。

cdv65290
質問者

補足

Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not translate host name "port=5432" to address: Unknown host in C:\Apache Group\Apache2\htdocs\sample\test01.php on line 6 というメッセージです。プログラム本体は、たかだか10行くらいの接続をテストするだけのプログラムです

関連するQ&A

専門家に質問してみよう