<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        ThinkPHP5.1:數組對象查詢的使用

        來源:懂視網 責編:小采 時間:2020-11-03 18:22:51
        文檔

        ThinkPHP5.1:數組對象查詢的使用

        ThinkPHP5.1:數組對象查詢的使用:用過5.0的開發者都比較依賴5.0的數組查詢方式,但是很無奈5.1的數組查詢方式和5.0的區別很大,因此經常聽到開發者抱怨5.1的數組查詢不好用。首先,出于安全和易用性的原因,官方是不推薦使用數組查詢條件的,其次,你也許不知道5.1版本其實提供了一個新的數組
        推薦度:
        導讀ThinkPHP5.1:數組對象查詢的使用:用過5.0的開發者都比較依賴5.0的數組查詢方式,但是很無奈5.1的數組查詢方式和5.0的區別很大,因此經常聽到開發者抱怨5.1的數組查詢不好用。首先,出于安全和易用性的原因,官方是不推薦使用數組查詢條件的,其次,你也許不知道5.1版本其實提供了一個新的數組

        對于習慣或者重度依賴數組查詢條件的用戶來說,可以選擇數組對象查詢,該對象完成了普通數組方式查詢和系統的查詢表達式之間的橋接,但相較于系統推薦的查詢表達式方式而言,需要注意變量的安全性,避免產生SQL注入的情況。

        要使用數組對象查詢,你首先需要引入thinkdbWhere類。

        use thinkdbWhere;

        Where對象的用法一般有兩種,第一種最簡單,你依然和5.0一樣使用數組條件進行定義查詢條件,例如:

        $map = [
         'name' => ['like', 'thinkphp%'],
         'title' => ['like', '%think%'],
         'id' => ['>', 10],
         'status' => 1,
        ];

        然后,在實際使用where方法的時候改為

        Db::name('user')
         ->where(new Where($map))
         ->select();

        生成的SQL是:

        SELECT * FROM `think_user` WHERE `name` LIKE 'thinkphp%' AND `title` LIKE '%think%' AND `id` > 10 AND `status` =1

        這種方式最容易改造,相當于一鍵切換到5.0的數組查詢方式。當然,除了Db查詢之外,模型查詢也一樣可以支持。

        第二種方式是,直接實例化一個Where對象,然后在where方法查詢的時候直接傳入該Where對象實例。

        $where = new Where;
        $where['id'] = ['in', [1, 2, 3]];
        $where['title'] = ['like', '%php%'];
        Db::name('user')
         ->where($where)
         ->select();

        Where對象實現了ArrayAccess接口,因此可以直接當成數組來賦值。

        生成的SQL是:

        SELECT * FROM `think_user` WHERE `id` IN (1,2,3) AND `title` LIKE '%php%'

        使用Where對象查詢可以和其它的查詢方式混合使用。如果你在混合使用數組查詢對象的時候,希望某個數組查詢對象的查詢條件加上括號,可以使用

        $where = new Where;
        $where['id'] = ['in', [1, 2, 3]];
        $where['title'] = ['like', '%php%'];
        Db::name('user')
         ->where($where->enclose())
         ->where('status', 1)
         ->select();

        生成的SQL是:

        SELECT * FROM `think_user` WHERE ( `id` IN (1,2,3) AND `title` LIKE '%php%' ) AND `status` =1

        enclose方法表示該查詢條件兩邊會加上括號包起來。

        使用數組對象查詢的情況請一定要注意做好數據類型檢查,盡量避免讓用戶決定你的數據,從而導致SQL注入的可能。

        PHP中文網,有大量免費的ThinkPHP入門教程,歡迎大家學習!

        本文轉自:https://blog.thinkphp.cn/778497

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        ThinkPHP5.1:數組對象查詢的使用

        ThinkPHP5.1:數組對象查詢的使用:用過5.0的開發者都比較依賴5.0的數組查詢方式,但是很無奈5.1的數組查詢方式和5.0的區別很大,因此經常聽到開發者抱怨5.1的數組查詢不好用。首先,出于安全和易用性的原因,官方是不推薦使用數組查詢條件的,其次,你也許不知道5.1版本其實提供了一個新的數組
        推薦度:
        標簽: 查詢 使用 php
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费观看四虎精品成人| 亚洲a∨无码一区二区| 成人A毛片免费观看网站| 日本a级片免费看| 亚洲AV无码一区二区三区久久精品| 97视频免费在线| 亚洲av片不卡无码久久| 中文字幕人成无码免费视频| 中文日韩亚洲欧美制服| 在线免费观看中文字幕| 亚洲精品国产摄像头| 国产片免费在线观看| 四虎国产精品成人免费久久| 伊人婷婷综合缴情亚洲五月| a级在线观看免费| 亚洲资源在线观看| 久久精品网站免费观看 | 日韩毛片免费在线观看| 亚洲AV无码成人精品区日韩| 一本色道久久88亚洲综合 | 免费无码一区二区三区| 亚洲国色天香视频| 午夜一级毛片免费视频| 一级一级一级毛片免费毛片| 亚洲AV日韩AV永久无码绿巨人| 精品国产免费人成电影在线观看| 亚洲综合激情五月丁香六月| 免费a级毛片18以上观看精品| 久草免费福利在线| 亚洲免费在线视频播放| 免费国产真实迷j在线观看| 中文字幕一区二区免费| 亚洲色欲色欲www| 红杏亚洲影院一区二区三区| 67pao强力打造国产免费| 亚洲精品精华液一区二区 | 国产免费AV片在线观看| 亚洲无人区视频大全| 亚洲高清国产拍精品青青草原 | 亚洲酒色1314狠狠做| 免费v片在线观看无遮挡|