【CakePHP】直接クエリを発行する方法。

060512_2028~01

2013年02月17日(日)

CakePHPを使っていて、直接クエリを書きたい! そう思ったことはありますよね? ほとんどすべてのクエリはCakePHPで保管されていますが、 やっぱり慣れている人は直接クエリを書きたいはずです! そう、今回はそのお話し。 ドキュメントにも記載されているが一応残しておこうと思う。    

CakePHPで直接クエリを発行する方法

これは、一度しったらおそらく二度と忘れないと思言われます。w モデル名にquery。そう、それだけ。  
$this->Model->query(

<<<EOF

SELECT * FROM `dat_model` as model
EOF

);
そう、こんなかんじ。    

CakePHPで直接クエリを発行してクエリに引数を付与させる方法

ついでにこちらも、 この事なんていうんでしたっけ? わすれたんですけど、「?」をつけるやり方です。  
$db = $this->Model->getDataSource();
$data = $db->fetchAll(

<<<EOF

SELECT *
FROM dat_model AS model

WHERE model.status = ?

EOF

,array(1)

);
$db->fetchAll(クエリ,array(引数)); で簡単に引数を付与出来ます。 この場合実行されるクエリは以下になります。  
SELECT *  FROM dat_model AS model WHERE model.status =  1
簡単ですね。 これってCakeに慣れていない人とかは重宝しそう。 ただ、フレームワークを使っているのだったら、 そのフレームに合わせた開発がやっぱい良いと思うので、 Cakeを使っていたら保管されているものを使った方が良いと思う。   なんかエスケイプとか自動でしてくれたりしてくれるから。 ただ、それらもすべてお見通しで、 なおかつクエリを使いたい人は使ってください。   俺はそうしない。   そう、俺ならね。  

スポンサードリンク

運営サービスPR

スポンサードリンク

運営サービスPR