• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答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
    主站蜘蛛池模板: 婷婷国产成人精品一区二| 日韩精品系列产品| 亚洲精品蜜桃久久久久久| 国产一成人精品福利网站| 亚洲精品国产首次亮相| 国产精品亚洲不卡一区二区三区| japanese乱人伦精品| 亚洲国产精品一区二区第一页免| 99久久国产综合精品网成人影院 | 国产精品青青在线观看爽香蕉| 国产女人精品视频国产灰线| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 国产精品岛国久久久久| 无码乱码观看精品久久| 国产精品va久久久久久久| 欧美日韩精品一区二区在线播放| 成人精品一区二区三区中文字幕| 婷婷国产成人精品视频| 一本大道无码日韩精品影视| 合区精品中文字幕| 四虎国产精品免费久久| 精品国产一区二区三区久久蜜臀| 91不卡在线精品国产| 欧美精品国产一区二区| 国产精品怡红院永久免费| 凹凸国产熟女精品视频app| 国产精品国色综合久久| 国产人妖乱国产精品人妖| 精品无人区一区二区三区| 亚洲∧v久久久无码精品| 亚洲国产精品成人精品无码区| 亚洲日韩精品无码专区网址| 无码国内精品人妻少妇| 亚洲av日韩精品久久久久久a| 亚洲精品国产美女久久久| 亚洲综合精品香蕉久久网| 日韩精品国产另类专区| 精品久久8x国产免费观看| 99久久免费国产精品热| 欧美大片日韩精品| 99精品欧美一区二区三区|