[PHP]PDOでPostgreSQLを操作したときのエラー
PHPとPostgerSQLを使用してアプリケーションを開発していますが、そのときにLinux版でのみエラーが発生するということがありました。
PostgreSQLの設定でログを出力するように設定していて気がついたのですが、Windows版では、問題なくクエリーの発行が行われて正常に終了していました。そこでOSをFedora Core 5に変えてその上で同様に試験をしていたところあるパターンでのみ、登録処理がうまくいきませんでした。
クエリーのログとしては、
ERROR: prepared statement "pdo_pgsql_stmt_09b83bd4" does not exist
といった内容で、どうやら発行したクエリーの解除を行っているのですが、そもそも発行していないクエリーの解除を行っているためにエラーが発生して処理が終わっていることがわかりました。
そもそも、そんな操作はいらないんですが^^;
そこでPHPのバグリポートの中をチェックするとどうやら同じような不具合を発見することができました。
そのバグリポートを見てみるとPostgreSQLのPDOのドライバにバグがあるらしくて、パッチを当てれば動作することがわかりました。
そこから、いろいろとパッチを当ててビルドするのにいろいろ大変でしたが(それは、また次の機会に)、パッチを当てて動作を確認したところ問題なく動作して余計なクエリーの解除をしないようになりました。
まだまだ、調べていくとまだまだPostgreSQLのPDOドライバはできがよろしくないようなので別の問題が発生するかもしれません。
[追記 2006/10/26 21:18]
ここで使用しているPHPのバージョンは、5.1.6で、PostgreSQLは8.1.4です。
| 固定リンク | コメント (0) | トラックバック (0)








最近のコメント