モノノフ日記

普通の日記です

PHP+Oracleの抽象データベースレイヤ

データベースラッパー作って、と言われたのでちょっと調べてみました。

環境はPHP5.2.0+Oracle XEです。

結論から言うとADOdbがベストと思います。

以下、理由です。



結果として、検索系はストアドプロシージャでDBに入れ込んじゃって、PHP側では"BEGIN 〜 END"するだけ良くなるのでコードも分離できてスッキリ。

最初PEAR::MDB2を試していたのですが、普通にインストールして使おうと思ってもDBに接続しないっつー状況に。。


少しネットで調べてみたらMDB2_Driver_OCI8がかなりのバグ持ちらしく使いものにならんと判断しましたw

PEAR公式サイトのコメントでPATCHとか公開されてるので根気ある方は頑張ってみてください。

僕は納期優先だったので諦めました(;^ω^)

次にPropelを調べました。PHPフレームワークsymfony使ってるので内蔵されてるPropel使えたら
楽そうだなと思ってましたが、ストアドプロシージャはMSSQLしか対応してませんとの表記があって却下しました。

PDOもREF CURSOR使えないから却下。早いしPHP標準だから楽なんですけどね。

たぶん上手いことやれば、どの抽象レイヤーでも出来ると思うんですがイレギュラーな事せずに
すんなり出来たのがADOdbでした。簡単だしオススメです!