2014.05.16
【Codeigniter】$this->db->where() の第3引数にfalseを指定した時の解説
photo credit: trekkyandy via photopin cc
PHPに、そしてCodeigniterに触れて早4ヶ月と少し。どうも、そうですOsamuです。
やっとこさPHP、Codeigniterにも慣れてきました。、、、が!まだまだPHPもCodeigniterも、分からない事はまだまだ多いです。どうやらプログラミングの道は険しいようです。
最近も既にCodeigniterで作成されたWebサービスのModelを見ていたのですが、いつも使っているModelの記述である$this->db->where() に第3引数にfalseが指定されていました。
この時まだまだ初心者の域から出ない私には、解説ページを見ても上手く理解できなかったのです。という事で自分で実際にその処理を実行してみて、どんなSQL分が走るのか調べてみたら理解できました!解説します。
$this->db->where() の第3引数にfalseを指定した時の解説
まず$this->db->where() の第3引数にfalseを指定した時にどうなるかというと、公式マニュアルにはこうあります。$this->db->where() にはオプションで第3の引数を渡すこともできます。FALSEを渡した場合、CodeIgniterはフィールド名やテーブル名をバックチック(`)を使って守りません。はっきり言ってしまうと、SQL初心者の私にはこう書かれても何行っているのかよくわかりませんでした。 で、どんな感じなのかというと、実際に記述して実行されるSQL文を見てみるとわかりました。以下の様に書きます。
実際に指定してみるとどうなるか
第3引数にfalseを指定しない時「$this->db->where(‘test.flag’, 0);」WHERE `test`.`flag` = 0第3引数にfalseを指定した時「$this->db->where(‘test.flag’, 0 , false);」
WHERE test.flag = 0