EthnaでADOdbを利用してみた。

Ethnaとは直接的には関係ないけど躓いたところを。
DBから大量のレコードを取得するようなselect文を投げた時PHPが死ぬ。
普通にoci8でダイレクトに投げるとちゃんと動く。

ADOdbではグローバル変数
$ADODB_COUNTRECS
もしそのデータベースドライバAPIがSELECT文で返されるレコード数のカウントをサポートしていなければ、グローバル変数$ADODB_COUNTRECSがデフォルトのtrueに設定されているとき、RecordCount()関数がエミュレートされます。レコードをバッファリングすることでエミュレートします。このため大きなレコードセットには大量のメモリを消費することになります。最善のパフォーマンスのためにはこの変数をfalseに設定します。この変数はクエリーが実行されるたびにチェックされるので、カウントすべきレコードセットを選択することができます。

というものがあるような。
今回ADOdbで接続しているDBはOracleということもあり、この機能を利用しないようにしてみる。
DBオブジェクトを作成した際にこいつをオフってみたらちゃんと動作ているみたい。
まぁ大量のデータを一気に取得するような仕様への突っ込みどころは満載ですが。。