質問: 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 です。 よろしくお願い致します。
回答: 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側で認識できていないので、おそらくそこら辺に原因がありそうですが。。