こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

PHPでpostgreSQLと接続しようとすると「call to undefind function pg_connect」というエラーが出る

表題の件で質問させて下さい。
いろいろネットで調べると、php.ini の

extension_dir="phpインストールフォルダのextフォルダ"
extension=php_pgsql.dllのコメントをはずす

で大抵は解決しているようなのですが、その対応をしてもどうも解決しません。
以下、わかる範囲で確認してみた項目です。

・phpinfoで確認してみても、postgreSQLの項目は表示されていませんでした。
・phpinfoの 「Loaded Configuration File 」のphp.iniのパスもあっています。
・ためしに、extension=php_mbstring.dll のコメントをつけたりはずしたりすると、phpinfoではちゃんと反映されていました。
・もちろん、extension_dirに設定しているディレクトリには、php_pgsql.dllがありました。

ちょっと何が原因なのか見当がつきません。
どなたかお分かりになる方がいらっしゃいましたらご教授願えませんでしょうか。

環境は
windowsXP
apache/2.2.9
PHP/5.2.6
です。

よろしくお願い致します。

投稿日時 - 2008-08-12 17:09:10

QNo.4246546

困ってます

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

Windows版PHPに詳しくはないですが、PHPマニュアル(http://jp2.php.net/manual/ja/pgsql.installation.php)に

PostgreSQLサポートを利用可能とするには、PHPコンパイル時に --with-pgsql[=DIR] を指定することが必要です。

とあります。PHPコンパイルするときのconfigureオプション(Win版ではconfigureと言うのかな?)に--with-pgsql[=DIR]をつけてコンパイルしなければならないのですが、それはしてますでしょうか?


undefined functionと出てるということは、pg_connect()関数がPHP側で認識できていないので、おそらくそこら辺に原因がありそうですが。。

参考URL:http://jp2.php.net/manual/ja/pgsql.setup.php

投稿日時 - 2008-08-13 12:12:20

お礼

ご回答ありがとうございます。
windows版でコンパイル時のオプション・・・
今まで意識せずとも出来てたので、どうやればいいのかわからないのですが、その辺をもう一度調べてみます!

ありがとうございました。

投稿日時 - 2008-08-14 08:17:05