• 締切済み

データベースに接続できない

postgresql-7.2.3.tar.gzインストール時には、下記内容でデータベースに接続できていました。 <?php $con = pg_connect("dbname='database_6' user='postgres' password='xxx'") if(!$con){ print "DB connection failed!!\n"; }else{ print "DB connection successful!!\n"; } ?> ところが、postgresql-8.0.26.tar.gzをインストールしたら、上記内容でデータベースに接続できなくなり、 Fatal error: Call to undefined function: pg_connect() in /usr/local/apache/htdocs/sql.php on line 2 というエラーメッセージが表示されます。 phpinfo();で確認もしましたが、ない感じです。Additiional Modulesのどこかを見れば、いいのでしょうか? pgsql.soは/usr/local/lib/php/extentions/pgsql.soにあります。/usr/local/lib/php.iniのextention_dir = ./を以下のように修正し、 extention_dir = /usr/local/lib/php/extentions extention=pgsql.so /usr/local/apache/bin/apachectl restart も実行しています。

みんなの回答

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.3

PostgreSQL自体が正常に動いているようであれば、pgsql.soをmakeし直してみてはいかがでしょう。 PostgreSQLのメジャーバージョンを上げているようなので、その影響があるかもしれませんね。

参考URL:
http://d.hatena.ne.jp/bco/20101229/1293627841
  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

PHPからではなく、psqlコマンドで接続できますか?

Feruza
質問者

お礼

早速の回答ありがとうございます。 例えば、 su - postgres psql database_6 のことでしょうか?こちらはできています。テーブルを作成して、csvファイルをコピーし、内容もちゃんと文字化けせずに確認できています。PHPでは接続できていないということになると思います。

  • localica
  • ベストアンサー率52% (202/385)
回答No.1

2行目にセミコロンがないのですが、釣りではないのでしょうか?

Feruza
質問者

お礼

早速の回答ありがとうございます。 ミスタイプです。実際のphpファイルには";"はありました。 なお、postgresのパスワードもrootで設定され、Apache実行ユーザのnobodyもpostgresで設定されています。

Feruza
質問者

補足

postgreSQLは自動起動するように設定してあります。Apacheは手動ですが…。

関連するQ&A