- 締切済み
データベースに接続できない
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 も実行しています。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- t_ohta
- ベストアンサー率38% (5238/13705)
PostgreSQL自体が正常に動いているようであれば、pgsql.soをmakeし直してみてはいかがでしょう。 PostgreSQLのメジャーバージョンを上げているようなので、その影響があるかもしれませんね。
- t_ohta
- ベストアンサー率38% (5238/13705)
PHPからではなく、psqlコマンドで接続できますか?
- localica
- ベストアンサー率52% (202/385)
2行目にセミコロンがないのですが、釣りではないのでしょうか?
お礼
早速の回答ありがとうございます。 ミスタイプです。実際のphpファイルには";"はありました。 なお、postgresのパスワードもrootで設定され、Apache実行ユーザのnobodyもpostgresで設定されています。
補足
postgreSQLは自動起動するように設定してあります。Apacheは手動ですが…。
お礼
早速の回答ありがとうございます。 例えば、 su - postgres psql database_6 のことでしょうか?こちらはできています。テーブルを作成して、csvファイルをコピーし、内容もちゃんと文字化けせずに確認できています。PHPでは接続できていないということになると思います。