• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題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:數(shù)組對象查詢的使用

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

    ThinkPHP5.1:數(shù)組對象查詢的使用

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

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

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

    use thinkdbWhere;

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

    $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的數(shù)組查詢方式。當然,除了Db查詢之外,模型查詢也一樣可以支持。

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

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

    Where對象實現(xiàn)了ArrayAccess接口,因此可以直接當成數(shù)組來賦值。

    生成的SQL是:

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

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

    $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方法表示該查詢條件兩邊會加上括號包起來。

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

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

    本文轉(zhuǎn)自:https://blog.thinkphp.cn/778497

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

    文檔

    ThinkPHP5.1:數(shù)組對象查詢的使用

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

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 中文字幕精品视频在线| 99精品热这里只有精品| 国产精品成熟老女人视频| 日韩精品人成在线播放| 你懂的国产精品| 久久精品人人做人人爽97| 亚洲国产精品成人午夜在线观看| 国产成人精品曰本亚洲79ren| 97久久久精品综合88久久| 亚洲国产精品自在拍在线播放 | 精品视频在线观看你懂的一区| 国产第一福利精品导航| 久久久久女人精品毛片| 亚洲av无码国产精品色在线看不卡| 国产精品热久久毛片| 欧美亚洲精品在线| 国产精品视频分类一区| A级精品国产片在线观看| 久久久久无码精品国产不卡| 亚洲精品无码你懂的网站| 国产精品自在在线午夜福利| 四虎精品成人免费观看| 狠狠色丁香婷婷综合精品视频| 经典国产乱子伦精品视频| 欧美精品v欧洲精品| 亚洲AV无码成人精品区天堂 | 国产精品哟女在线观看| 国产成人精品日本亚洲专区 | 久久精品www人人爽人人| 亚洲国产第一站精品蜜芽| 亚洲精品视频免费观看| 亚洲av午夜成人片精品电影| 午夜一级日韩精品制服诱惑我们这边| 久热精品视频第一页| 久久99精品国产麻豆婷婷| 久久996热精品xxxx| 久久久久久亚洲精品无码| 久热精品视频第一页| 四虎国产精品永免费| 在线观看国产精品日韩av| 久久精品人人做人人妻人人玩|