zend_dbでlimitにプレースホルダをつけるとエラーになる

zend_dbでlimitにプレースホルダをつけるとエラーになるという現象があります。バグだといわれているようです。

そこで、

 

$sql = "SELECT test_id,e FROM MST_TESTwhere level = :LEVEL ";
$sql .= $this->db->quoteInto(' LIMIT ? ,100', $st*100, 'INTEGER');
quoteIntoで入れてあげるとうまくいくようになります。
 
limit句はできるだけ早く作っておかなくてはならないということだと思います。
 
以前からエラーが出ていたけど、原因は分からず、プレースホルダを使わないということで問題を解決していました。
 
しかし、ページネーターを作るような場合はlimitで制限する必要もあり、今回はこのような方法で解決しました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です