PHPでPostgreSQLに接続しようとしたら例のエラー
PHPでPostgreSQLに接続するところで躓いてしまった。
通常だったらphp.ini内の「extension=php_pgsql.dll」を有効にするだけでpg_connect関数が使えるようになり、ハイ接続プログラム書いてアプリ作成〜。。。。という流れになるハズなんだが、環境設定したOS上でどうがんばってもpg_connect関数が使えない。。
これは久々にハマった。。
問題
通常の手順どおりにPHPからPostgreSQLにアクセスする設定を施しても接続できない。
(今回使用したPHPのバージョンは5.2系の最新版である5.2.10です)
考察
Apacheのerror.log
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP\\ext\\php_pgsql.dll' - 指定されたプロシージャが見つかりません。 in Unknown on line 0
設定は正常
PHPにてPostgreSQLを使うにはphp.iniにてextension記述箇所をコメントアウトすればOKなので、設定ファイルは問題無し。
extension=php_pgsql.dll
既知のバグみたい?
どうやらPHPのPostgreSQLのモジュールには既知のバグがあるらしくて、5.2.6以降のモジュールは使えないとのこと。
現象としては、設定を正しく記述し、モジュールがあるにも関わらず「モジュールが無いよ」ということが発生するのです。