skillup

技術ブログ

Database PHP

cakePHPでの直SQL

投稿日:

今回はCakePHPにて直のSQLを書く方法を。

cakePHPにて大概の処理はもともと備わっているコマンドでなんとかなりますが、まれに直SQLを書いたほうがらくなこともあります。

書き方その1

queryというメソッドにSQLを投げ込めばOKです。ほんとにそのまんま・・・この場合はテーブル名もcakeを使うときのモデル名ではなく純粋なテーブルを使ってOKです。

ただ、この方法だとエスケープをしてくれないのでやや危険です。自分でいちいちやるのは面倒でしょう。

そこで次の書き方がおすすめです。

書き方その2

プリペアードステイトメントですね。この方法であればSQLインジェクション対策が施されているのでお勧めです。

直にSQLを書きたい方は参考までに・・・

http://log.noiretaya.com/157
http://bashalog.c-brains.jp/09/02/18-114713.php

-Database, PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

cakePHPでのCSVダウンロード

cakePHPにてCSVのダウンロードなんぞを。 以前このエントリーでCSVダウンロードに関しては取り扱ったのですが、 ボタンを押す ファイルダイアログが開く パスを選ぶ 意図したデータを正常にダウン …

no image

コード静的解析ツールを使った際の気づきなど

最近のプロジェクトでコード静的解析ツール(phpcs,phpmd)を使った際の気づきなど コードを書きながら常時エディタがチェックするタイプのものでないとまず無理(保存するたびでも無理だし、コミット時 …

no image

オプティマイザと実行計画

データベースがSQLを受け取って処理を実行する前には下記のような段階があります。 Contents1 パーサー2 オプティマイザ3 カタログマネージャー4 テーブルからデータの取得5 参考リンク パー …

no image

sql_modeに関して

開発では動いていたのに本番ではint型のカラムで空白が入らない!みたいなエラーが出て、データベースにデータが入らないことが発覚し、調査をすることに・・・ sql_modeが原因でした・・・ sql_m …

no image

DBUtils活用 その2

以前DBUtilsの活用を書きましたが、他の使い方がわかったのでメモ 以前はSelectでList<エンティティ>を取得したのですが、List<Map>でも取得できます。 ソー …