ハマったこと
- getパラメータで受け取った値を、SQLの検索条件に使いたかった。(緯度・経度から、近くのお店を表示する機能)
- でも
$q->between('パラメータを使った計算式', 0, 1)
って書くと、エスケープされないことに気づいた。
原因
cakeのORMを使うと、左辺はエスケープされないみたい。
対策
いろいろ考えましたが、良い感じにエスケープするのは出来ませんでした。
その代わりに、パラメータを変数に入れるときに正規表現でチェックをしました。
$latitude = preg_match('パターン', $query['latitude']) ? $query['latitude'] : '';
$query['latitude']にdelete ~~~
みたいな恐ろしいことを書かれても、とりあえず大丈夫だと思う。
もっと良い方法があったら教えて下さい。