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