*

【Codeigniter】$this->db->where() の第3引数にfalseを指定した時の解説

公開日: : CodeIgniter, SQL

medium_389294731
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


バックチック(`)を使って守りません。はどういう事か

どうSQLが実行されるのかはわかりました。しかし、バックチック(`)を使って守りません。と言われてもSQL初心者の私には何いってるかわかりませんでした。どうなるかはわかったので、後はこの意味を理解すれば終わりですね。

以下の参考サイトが凄く参考になりました。

参考:phpMyAdminのSQLに付加される「’」に似た記号「`」は何?

結果的には予約語やハイフンでつないだ名前のテーブルをSQL文で使う場合には、バックチック(`)で囲む必要がある。という事です。

予約後については以下に一覧がありますので、参考にしてみてください。

参考:MySQL予約語

もう使い方、そしてその意味も理解しました。何も恐くない!使えるぞ、これ!

お問い合わせはこちら!

関連記事

medium_3229017611 (1)

PHP初心者は特に必見!CodeIgniter勉強するなら参考になるサイトまとめ

今でもメインで使っているし、使っていて気持ちのよいPHPフレームワークはCodeIgnite

記事を読む

small__364815092

codeigniterのヘッダー、フッターはhookでなくloadで対応する

photo credit: mrlerone via photopin cc  

記事を読む

small__9257451603

codeigniterで共通のヘッダーフッターの読み出しはCI_LoaderをextendsしたMY_Loaderで実装する

codeigniterで共通のヘッダー、フッターを読み込むときは、CI_Loaderクラスを

記事を読む

large__2433102356

codeigniterはセッション情報をクッキー保持するので、複数台構成でもセッション保持してくれる

サービスが拡大していくと、いずれサーバの複数台構成にしなければならなくなる状況になります。

記事を読む

medium_11122773785

SQLのLEFT JOINを実際に実行して視覚的に理解しよう!

photo credit: tec_estromberg via photopin cc

記事を読む

small__6757040007

codeigniterで、PC版とスマフォ版のテンプレートを自動で振分ける方法

  スマフォ版とPC版のテンプレートを切り替えるために、毎回コントローラでユ

記事を読む

medium_24124753 (1)

【MySQL】SQLでif文のような条件分岐を行いたいならcase文を使うベシ!!

photo credit: jimw via photopin cc この頃は買い物してい

記事を読む

PAK12_10naname500

codeigniterで複数データベース切替方法について

codeigniterでデータベース切替を行うためにはどうしたらよいかを試行錯誤してみました

記事を読む

small__518053737

codeigniterでselect文にunionを使いたい

select文でunionを使いたいが、調べてみてると普通にできなさそうなので、librar

記事を読む

What have I done!?

codeigniterでIE8において別Windowで開くとセッションが切れてログアウトしてしまう

codeigniterで作成したWebサービスをアクセスしているときに、別Windowで開く

記事を読む

お問い合わせはこちら!

Message

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

お問い合わせはこちら!

35643
SourceTreeで差分ファイルを抽出

GitのクライアントでSourceTreeを利用する時、コミットの差分

2536_normal_1392167345_phpstudy
第104回 PHP勉強会に参加しました!

昨日「第104回 PHP勉強会@東京」に参加し、メイン発表をしました。

laravel_dev
Windows10にLaravel開発環境を構築

本記事は筆者のノートパソコンにLaravelプロジェクトの開発環境を構

1463577479_XAMPP
複数のXAMPPインストール

Windows環境でPHP開発をする際にXAMPPをインストールするこ

Laravel
Laravel 5.1 プロジェクト作成(インストール)

本記事ではLaravel 5.1 LTSを利用して開発するためにLar

→もっと見る

  • AWS構築 - クラウドアドバイザー
PAGE TOP ↑