PHP5.2.6で PosgreSQL 8.3 と接続できない問題

PHP5.2.6 で PosgreSQL のデータをいじろうと思って、php.ini の extension=php_pgsql.dll を有効にして、phpinfoで見たのですが、pgsql と言う項目がphpinfoの一覧にない…
これじゃあ、PosgreSQL のコードが動かないのも当然ですね。
さらに、コマンドで
C:Program FilesMicrosoft SDKsWindowsv6.0>php -version
と打ったところ、

PHP Warning:  PHP Startup: Unable to load dynamic library …phpextphp_pgsql.dll’ – 指定されたモジュールが見つかりません。
 
と言うエラーが出ました。
phpのパスは通っているし、上記場所に php_pgsql.dll はちゃんとありました。
色々調べたところ、原因が判明。PHP のバグだったとはw
http://bugs.php.net/bug.php?id=44905
Windows 版 PHP 5.2.6 で PostgreSQL のモジュールを読み込めないバグなんだそうです。
Or you can use the libs from here:
http://downloads.php.net/pierre/libpq-php-4.4.9-5.2.6.zip
ということで、そこからダウンロードした libpq.dll を php のディレクトリにコピーしてサーバを再起動して終わり。

ちなみにこの問題は Windows 版 PHP 5.2.6 のみで次のバージョン (5.2.7/5.3) で修正されるようです。

11/20追記:
PostgreSQL のモジュールを PHP が見つけられないバグなので、上記のような対処をしない限り、PDO経由での利用も出来ません。

広告
カテゴリー: コンピュータとインターネット パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中