【CakePHP2】自作SQLを実行させる方法
2015/01/11
CakePHP2で、直接SQLを実行させたい場合の方法。
CakePHPのバージョンは、2.3.10で確認しました。
CakePHPで自作SQLを実行
複雑な条件でデータを取得したりする場合や、SQLを直接書いたほうが早いって方が居ると思います。
その場合、CakePHPに用意されている queryメソッド を使用し、SQLを実行することができます。
SQLはモデルファイルにまとめた方が綺麗かな、と思いましたので、モデルにSQLを書く方式を採用しました。
もちろん、コントローラーに直接書いても問題ありません。
コントローラー
1 2 3 4 5 6 7 8 9 10 11 |
<?php class ProfileController extends AppController { $uses = array('Profile'); public function list() { $data = $this->Profile->_get_detail($id); $this->set('data', $data); } } |
モデル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class Profile extends AppModel{ public function _get_detail($id) { $sql = "SELECT * FROM profiles WHERE id = :id;"; $params = array( 'id'=> $id ); $data = $this->query($sql, $params); return $data; } } |
さほど難しいことではないので、SQL書いたほうが良いなって時はぜひ。