CakePHP2.6を使用しています。

query()で実行するSQLにlimit句がありその値をバインド変数で可変にしたいと考えています。

limit :limit

とし、

$this->query($sql, ['limit' => 1], false);

と値をセットして実行するとlimit句に文字列の1が入ってしまいエラーとなります。

PDOならbindValueの引数にPDO::PARAM_INTを設定して解消出来るようですが
CakephpだとDboSource::_execute()内でexecute()が実行されるまでにそれが設定出来るような箇所は無いように見えます。

CakePHPでlimit句に値を指定する方法はあるのでしょうか

追記
?を使った方法でも同様のエラーとなります。

LIMIT ?

 

$this->query($sql, [1], false);

またエラーメッセージは以下のとおりです。

Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' at line 12