<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
        主站蜘蛛池模板: baoyu116.永久免费视频| 亚洲AV无码男人的天堂| 国内永久免费crm系统z在线| 全部免费毛片在线| 精品一区二区三区无码免费直播| 四虎成人免费网址在线| 亚洲熟妇自偷自拍另欧美| 色妞WWW精品免费视频| 亚洲国产高清国产拍精品| 免费看一级做a爰片久久| 老妇激情毛片免费| 国产国拍亚洲精品福利| a级毛片100部免费观看| 香蕉蕉亚亚洲aav综合| 很黄很黄的网站免费的| 亚洲精品国产摄像头| 亚洲高清免费视频| APP在线免费观看视频| 久久亚洲精品中文字幕| 成年女人免费视频播放体验区| 99亚洲精品卡2卡三卡4卡2卡| 亚洲日韩中文字幕日韩在线| 国内精品99亚洲免费高清| 亚洲理论在线观看| 成人免费视频88| 一区二区三区视频免费观看| 亚洲日本在线观看| 成人免费毛片观看| 岛国精品一区免费视频在线观看| 亚洲AV日韩AV鸥美在线观看| 免费无码黄十八禁网站在线观看| 特级一级毛片免费看| 亚洲图片一区二区| 免费黄色大片网站| 永久免费A∨片在线观看| 亚洲性69影院在线观看| 亚洲国产精品成人| 99在线视频免费观看视频 | 国产亚洲综合精品一区二区三区| 亚洲一区二区三区在线视频| 国内精品乱码卡1卡2卡3免费|