重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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

も実行しています。

A 回答 (3件)

PostgreSQL自体が正常に動いているようであれば、pgsql.soをmakeし直してみてはいかがでしょう。


PostgreSQLのメジャーバージョンを上げているようなので、その影響があるかもしれませんね。

参考URL:http://d.hatena.ne.jp/bco/20101229/1293627841
    • good
    • 0

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

    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

例えば、

su - postgres
psql database_6

のことでしょうか?こちらはできています。テーブルを作成して、csvファイルをコピーし、内容もちゃんと文字化けせずに確認できています。PHPでは接続できていないということになると思います。

お礼日時:2011/06/23 22:23

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

この回答への補足

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

補足日時:2011/06/23 21:21
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

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

お礼日時:2011/06/23 21:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す