今回はCakePHPにて直のSQLを書く方法を。
cakePHPにて大概の処理はもともと備わっているコマンドでなんとかなりますが、まれに直SQLを書いたほうがらくなこともあります。
書き方その1
1 2 |
$sql = 'select id,name from items'; $res = $this->query($sql); |
queryというメソッドにSQLを投げ込めばOKです。ほんとにそのまんま・・・この場合はテーブル名もcakeを使うときのモデル名ではなく純粋なテーブルを使ってOKです。
ただ、この方法だとエスケープをしてくれないのでやや危険です。自分でいちいちやるのは面倒でしょう。
そこで次の書き方がおすすめです。
書き方その2
1 |
$res = $this->getDataSource()->fetchAll('select id,name from items where id = ? ',array(5)); |
プリペアードステイトメントですね。この方法であればSQLインジェクション対策が施されているのでお勧めです。
直にSQLを書きたい方は参考までに・・・