CakePHPで複雑なSQLを組むときとかって、
直クエリを実行する事って多々あると思います。
$sql = ' SELECT * FROM users WHERE status = \'1\' AND name = \'test\' '; $this->Model->query($sql);
今回はほんとに簡単なクエリになりますが。。
ただ上記だとセキュリティ的によくありません。
例えば、
AND name = \'test\'
こちらの値を、webのformから取得した値をそのまま入れるとすれば
SQLインジェクションの被害にある恐れがあります。
そこでCakePHPでは以下のようにすればプリペアドステートメントを利用できます。
$sql = ' SELECT * FROM users WHERE status = ? AND name = ? '; $params = array($status, $test); $this->Model->query($sql, $params);
簡単ですのでおすすめです。
ちなみにこちらCakePHP1.3での対応となります。