CakePHP2.x SQLをModelに書いて実行する
CakePHP2.x SQLをModelに書いて実行する

CakePHP使いとしては、SQLを書くことそのもが気が引けるのですが。。やむなしって時。
ControllerにSQLを書くケース
$return = $this->Model->query($sql);
SQLを書いて実行する場合はこれが一般的。
ModelにSQLを書くケース
もちろん、プレースホルダーをつかってSQLインジェクション対策もします。
class Model extends AppModel {
public function getMember($id){
$sql = "SELECT * FROME table WHERE member_id = ?;";
$params = array(
'member_id'=> $id
);
$data = $this->query($sql,$params);
return $data;
}
あとはController内で受け取ります。
//Controller
public function index($id) {
$data = $this->Model->getMember($id);
$this->set('data', $data);
}
。。特にメモるほどでもなかったかも・・