【CakePHP】直接SQL(クエリ)を実行する

スポンサード リンク

バージョン:CakePHP 2.2.2

CakePHPで直接SQL文を書きたい場合について。

SQLを書くことに慣れている人や、複雑な条件でデータを取得しようとすると
findを使用するよりSQLを直接書きたい場合があると思います。

その場合には、下記のようにqueryメソッドを使用します。

$sql = " SELECT .....";
$return = $this->モデル名->query($sql);

上記はコントローラーで直接実行できますが、コントローラーとモデルに分けて書きたい場合は、
下記のように分けて書くこともできます。
※個人的には、こっちの方が好きです。

・コントローラー

<?php
    
class SampleController extends AppController{

	public $uses = array('Sample');

	public function index($id) {   
		$data = $this->Sample->getData($id);
		$this->set('data', $data);
	}
}

・モデル

<?php

class Sample extends AppModel {

	public function getData($id){
		$sql = "SELECT * FROME sample WHERE sample.id = :id;";

		$params = array(
			'id'=> $id
		);

		$data = $this->query($sql,$params);
		return $data;
	}

スポンサード リンク


return top