<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ### 1.Thinkphp中where()條件的使用   總是有人覺得,thinkphp的where()就是寫我要進行增加、查詢、修改、刪除數據的條件,很簡單的,其實我想告訴你,where()是寫條件語句的,但是他很不簡單,嚴密的條件語句,可以有效的防止sql注入,也可以加強sql語句的嚴密性,也有利于進行搜索查詢 #### 1.1查詢方法分類   where方法的用法是ThinkPHP查詢語言的精髓,可以完成包括普通查詢、表達式查詢、快捷查詢、區間查詢、組合查詢在內的查詢操作。where方法的參數支持字符串和數組,雖然也可以使用對象但并不建議。 ##### 1.1.1字符串條件   使用字符串條件直接查詢和操作(TP框架控制器中的條件語句可以在/Runtime/Logs/.. 里面找到,可以對比)   例: ~~~   $User = M("User"); // 實例化User對象   $User->where('type=1 AND status=1')->select(); ~~~   生成sql語句: ~~~ SELECT * FROM user WHERE type=1 AND status=1; ~~~   在TP版本3.1以上時,建議配合預處理機制,確保更加安全,可以有效的防sql注入 ~~~ $Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select(); ~~~ 或者:  ~~~ $Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select(); ~~~ ##### 1.1.2數組條件   最簡單的數組條件查詢: ~~~   $User = M("User"); // 實例化User對象 $map['name'] = 'thinkphp'; $map['status'] = 1; // 把查詢條件傳入查詢方法 $User->where($map)->select(); ~~~   生成的SQL語句: ~~~ SELECT * FROM user WHERE `name`='thinkphp' AND status=1 ~~~    ##### 1.1.3表達式查詢 ~~~   $map['字段1'] = array('表達式','查詢條件1'); $map['字段2'] = array('表達式','查詢條件2'); $Model->where($map)->select(); ~~~ ##### 1.1.4表達式中運算符條件的查詢 |TP運算符|SQL運算符| 例子| 實際查詢條件| |||| |eq| =| $map['id'] = array('eq',100);| 等效于:$map['id'] = 100;| |neq| !=| $map['id'] = array('neq',100);| id != 100| |gt| >| $map['id'] = array('gt',100);| id > 100| |egt| >=| $map['id'] = array('egt',100);| id >= 100| |lt |< |$map['id'] = array('lt',100);| id < 100| |elt| <=| $map['id'] = array('elt',100);| id <= 100| |like| like| $map<'username'> = array('like','Admin%');| username like 'Admin%'| |between| between and |$map['id'] = array('between','1,8'); |id BETWEEN 1 AND 8| |not between| not between and| $map['id'] = array('not between','1,8');| id NOT BETWEEN 1 AND 8| |in| in| $map['id'] = array('in','1,5,8');| id in(1,5,8)| |not in| not in| $map['id'] = array('not in','1,5,8');| id not in(1,5,8)| |and(默認)| and |$map['id'] = array(array('gt',1),array('lt',10));| (id > 1) AND (id < 10)| |or| or| $map['id'] = array(array('gt',3),array('lt',10), 'or'); |(id > 3) OR (id < 10)| |xor(異或)| xor |兩個輸入中只有一個是true時,結果為true,否則為false,例子略。| 1 xor 1 = 0| |exp| 綜合表達式| $map['id'] = array('exp','in(1,3,8)'); |$map['id'] = array('in','1,3,8');| exp 不是一個運算符,而是一個綜合表達式以支持更復雜的條件設置。exp 的操作條件不會被當成字符串,可以使用任何 SQL 支持的語法,包括使用函數和字段名稱。 ##### 1.1.5快捷查詢   一、實現不同字段相同的查詢條件 ~~~   $User = M("User"); // 實例化User對象 $map['name|title'] = 'thinkphp'; // 把查詢條件傳入查詢方法 $User->where($map)->select(); ~~~   查詢條件就變成 name= 'thinkphp' OR title = 'thinkphp',是不是很強大      二、實現不同字段不同的查詢條件 ~~~   $User = M("User"); // 實例化User對象 $map['status&title'] =array('1','thinkphp','_multi'=>true); // 把查詢條件傳入查詢方法 $User->where($map)->select(); ~~~   '_multi'=>true必須加在數組的最后,表示當前是多條件匹配,這樣查詢條件就變成 status= 1 AND title = 'thinkphp' ,查詢字段還能支持更多。   例:$map['status&score&title'] =array('1',array('gt','0'),'thinkphp','_multi'=>true);     查詢條件就變成 status= 1 AND score >0 AND title = 'thinkphp' 注意:快捷查詢方式中“|”和“&”不能同時使用。   三、區間查詢   where方法支持對某個字段的區間查詢   例如1: ~~~ $map['id'] = array(array('gt',1),array('lt',10)) ; ~~~   得到的查詢條件是: ~~~ (`id` > 1) AND (`id` < 10) ~~~   例如2: ~~~ $map['id'] = array(array('gt',3),array('lt',10), 'or') ; ~~~   得到的查詢條件是: ~~~ (`id` > 3) OR (`id` < 10) ~~~   區間查詢的條件可以支持普通查詢的所有表達式,也就是說類似LIKE、GT和EXP這樣的表達式都可以支持。另外區間查詢還可以支持更多的條件,只要是針對一個字段的條件都可以寫到一起。   例: ~~~ $map['name'] = array(array('like','%a%'), array('like','%b%'), array('like','%c%'), 'ThinkPHP','or'); ~~~   最后的查詢條件是: ~~~ (`name` LIKE '%a%') OR (`name` LIKE '%b%') OR (`name` LIKE '%c%') OR (`name` = 'ThinkPHP') ~~~ 區間查詢 ~~~ /** * 30天首單診所滿500業績計數 * @param $cic_clinics_id 診所id * @param $flag 標記值 * @return bool 成功標記 */ public function getCicsnum_30d($user,$where_30_between) { $cics_30d = [ "status" => 1, "user" => $user, "first_date" => $where_30_between, 'price_30d' => array(array('GT',500),array('EQ',500),'or') ]; $num = M("cic_clinics")->where($cics_30d) ->count(); return $num; } ~~~ ##### 1.1.6組合查詢   一、字符串模式查詢(采用_string 作為查詢條件)    數組條件還可以和字符串條件混合使用,例如: ~~~   $User = M("User"); // 實例化User對象   $map['id'] = array('neq',1);   $map['name'] = 'ok';   $map['_string'] = 'status=1 AND score>10';   $User->where($map)->select(); ~~~   最后得到的查詢條件就成了: ~~~ ( `id` != 1 ) AND ( `name` = 'ok' ) AND ( status=1 AND score>10 ) ~~~   二、請求字符串查詢方式   請求字符串查詢是一種類似于URL傳參的方式,可以支持簡單的條件相等判斷。 ~~~  $map['id'] = array('gt','100');  $map['_query'] = 'status=1&score=100&_logic=or'; ~~~   得到的查詢條件是: ~~~ `id`>100 AND (`status` = '1' OR `score` = '100') ~~~   三、復合查詢   復合查詢相當于封裝了一個新的查詢條件,然后并入原來的查詢條件之中,所以可以完成比較復雜的查詢條件組裝。   例如: ~~~     $where['name'] = array('like', '%thinkphp%');     $where['title'] = array('like','%thinkphp%');     $where['_logic'] = 'or';     $map['_complex'] = $where;     $map['id'] = array('gt',1); ~~~   查詢條件是: ~~~ ( id > 1) AND ( ( name like '%thinkphp%') OR ( title like '%thinkphp%') ) ~~~    復合查詢使用了_complex作為子查詢條件來定義,配合之前的查詢方式,可以非常靈活的制定更加復雜的查詢條件。(當你掌握到這種程度,說明你的where()條件的使用快沒有問題了) ##### 1.1.7多次調用   where方法支持多次調用,但字符串條件只能出現一次。 ~~~   $map['a'] = array('gt',1); $where['b'] = 1; $Model->where($map)->where($where)->where('status=1')->select(); ~~~   多次的數組條件表達式會最終合并,但字符串條件則只支持一次。 * * * * * http://www.cnblogs.com/martin1009/archive/2012/08/24/2653718.html http://doc.thinkphp.cn/manual/query.html
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看