ThinkPHP6.0-Datenbankkettenbetrieb



ThinkPHP6 Datenbankkettenbetrieb

  • Die von der Datenbank bereitgestellte Kettenbetriebsmethode kann die Codeklarheit und Entwicklungseffizienz des Datenzugriffs effektiv verbessern und unterstützt alle CURD Vorgänge

  • Mit * markiert, unterstützt es mehrere Anrufe

连贯操作 作用 支持的参数类型
where*用于AND查询字符串、数组和对象
table 用于定义要操作的数据表名称字符串和数组
name 用于定义要操作的数据表名称字符串
field*用于定义要查询的字段(支持字段排除)字符串和数组
order*用于对结果排序字符串和数组
limit 用于限制查询结果数量字符串和数字
page 用于查询分页(内部会转换成limit)字符串和数字

1. Ausdrucksabfrage

  • Der Ausdruck ist die Bedingung der SQL-Anweisung

  • Ausdrücke unterscheiden nicht zwischen Groß- und Kleinschreibung

  • Ausdrücke werden in der Schreibweise geschrieben, wo

表达式含义查询方法
=等于
<>不等于
>大于
>=大于等于
<小于
<=小于等于
[NOT] LIKE模糊查询whereLike/whereNotLike
[NOT] BETWEEN(不在)区间查询whereBetween/whereNotBetween
[NOT] IN(不在)IN 查询 whereIn/whereNotIn
[NOT] NULL查询字段是否(不)是NULLwhereNull/whereNotNull

whereAbfrage

  • wobei die Methode die am häufigsten verwendete Methode in der Kettenoperationsmethode ist, die normale Abfragen, Ausdrucksabfragen, Schnellabfragen, Intervallabfragen und Kombinationen abschließen kann Bedingte Abfrageoperationen einschließlich Abfragen

# Gleich (=)

$select = Db::table('shop_goods')->where('id','=','1')->select();

print_r($select->toArray()) ;


# Ungleich (<>)

$select = Db::table('shop_goods')->where('id','<>','2')->select();

print_r($select->toArray ());


# Größer als (>)

$select = Db::table('shop_goods')->where('id','>','3')->select();

print_r($select->toArray() );


# Größer als oder gleich (>=)

$select = Db::table('shop_goods')->where('id','>=','4')->select();

print_r($select->toArray( ));


# Kleiner als (<)

$select = Db::table('shop_goods')->where('id','<','5')->select();

print_r($select->toArray() );


# Kleiner oder gleich (<=)

$select = Db::table('shop_goods')->where('id','<=','6')->select();

print_r($select->toArray( ));


# Mehrere wo

$select = Db::table('shop_goods')

                                                                                                                                                                                    wo ->where('id','<','8')

          ->select();

print_r($select->toArray());


# LIKE

$select = Db::table('shop_goods')->where('title','like','%dress%')->select();

print_r($select->toArray( ));


# NICHT LIKE

$select = Db::table('shop_goods')->where('title','not like','%dress%')->select();

print_r($select->toArray());


# ZWISCHEN

$select = Db::table('shop_goods')->where('id','between','6,10')->select();

print_r($select->toArray( ));


# NICHT ZWISCHEN

$select = Db::table('shop_goods')->where('id','not between',[6,10])->select();

print_r($select->toArray());


# IN

$select = Db::table('shop_goods')->where('id','in','4,7,10')->select();

print_r($select-> toArray());


# NOT IN

$select = Db::table('shop_goods')->where('id','not in',[4,7,10])->select();

print_r($select->toArray());

2 🎜>

1. Tabelle und Name

# Der vollständige Datenbankname muss

$select = Db::table('shop_goods')->where('id','10')->select();

lauten print_r( $select->toArray());

# Für die Datenbank ist kein Präfix festgelegt $select->toArray());

# Datenbankeinstellungspräfix, kein Präfixzugriff

$select = Db::name('list')->where('id','12')->select();

print_r($select->toArray());

2. Datenbankpräfix

Datenbankkonfiguration

return [

database.php 'connections' => [

'mysql' => [

/ Das Datenbanktabellenpräfix

'prefix' = & gt; get ('database.prefix', 'shop _'),

]

]

];

3. Rückgabewert

1,

Feld Die Hauptfunktion der Methode besteht darin, die zurückzugebenden oder zu bedienenden Felder zu identifizieren, die für Abfrage- und Schreibvorgänge verwendet werden können field 

  • Alle Abfragemethoden können die Feldmethode

    < verwenden 🎜>

  • # String

    $select = Db::table('shop_goods')
->field('title,price,discount as d')

->where('status',1)

->select();

print_r($select->toArray());

# Array

$select = Db::table('shop_goods')


                                                                                                                                                                            'discount'=>'d'

])

->where('status',1)

->select();

print_r($select->toArray());

# Hinzufügen, nur diese Felder können hinzugefügt werden

# Mehrere Felder

$data = [

'title' => 'Neues Produkt',

'Preis' => 50,


'Rabatt' => 8,

' add_time' => 1576080000

];

$insert = Db::table('shop_goods')

> ->field('add_time')

                              ->insert($data);

print_r($insert);

# Alle Felder schneller abfragen

$select = Db::table('shop_goods')

                                                                                                   ('*')

->where('status',1)

->select();

print_r($select->toArray());

2,

withoutField-Methodenfunktion Felder in der Datentabelle ausschließen

Db::table('shop_goods')->withoutField('id')->select();

3, withoutField

  • fieldRaw Methode: MySQL-Funktion direkt verwenden

Db::table('shop_goods')->fieldRaw('id,sum(price)')->select();

fieldRaw 4. Sortieren

  • 1.

    Methode wird verwendet, um die Ergebnisse von Vorgängen zu sortieren oder zu priorisieren

Standardmäßige positive Reihenfolge

aufsteigend Vorwärtsbestellungorder

  • desc Rückwärtsbestellung

  • $select = Db::table('shop_goods')

  • ->field('title,price,id')
  • ->where('status',1)

  • ->order('price','DESC')
->order('id','DESC')

->select();

print_r($select->toArray());

2. Verwenden Sie die MySQL-Funktion

im

Methode

$select = Db::table('shop_goods')

->field('title,price,id')

->where('status',1)

orderRaw                      ->orderRaw("field(title,'price','discount','stock')")

->select();

print_r($select->toArray());

5. Paging

-Methode wird hauptsächlich verwendet, um die Anzahl der Abfragen und Vorgänge anzugeben

$select = Db::table('shop_goods')
  • ->field('title,price,id')

    limit ->where('status',1)

  • ->order('price','DESC')
> ->select();

print_r($select->toArray());

$select = Db::table('shop_goods ')

->field('title,price,id')

->where('status',1)

->order('price','DESC')

->limit(0,5)

->select();

print_r($select->toArray());

    -Methode wird hauptsächlich für Paging-Abfragen verwendet
  • page

  • $select = Db::table('shop_goods')
->field('title,price,id')

->where('status',1)

                     ->order('price','DESC')

                                                                                                                                                   ->select();

print_r($select->toArray());

6 , Aggregationsabfrage

Wenn in der Aggregationsmethode keine Daten vorhanden sind, ist der Standardwert 0. Die Aggregationsabfrage kann mit anderen Abfragebedingungen abgeglichen werden

  • // Zähle die Zahl, der Parameter ist der zu zählende Feldname (optional)

    $select = Db::table('shop_goods')->count();

    print_r($select);


    // Den Maximalwert abrufen, Parameter Ist der zu zählende Feldname (erforderlich)

    $select = Db::table('shop_goods')->max('id');

    print_r($select);


    // Holen Sie sich die Mindestwert, der Parameter ist der zu zählende Feldname (erforderlich)

    $select = Db::table('shop_goods')->min('id');

    print_r($select);


    // Holen Sie sich die Durchschnittswert, der Parameter ist der zu zählende Feldname (erforderlich)

    $select = Db::table('shop_goods')->avg('id');

    print_r($select);


    // Holen Sie sich die Gesamtzahl, der Parameter ist der zu zählende Feldname (erforderlich)

    $select = Db::table('shop_goods')->sum('id');

    print_r($select);

    7. Such- und Sortierbeispiele

    Controller-Code

    öffentliche Funktion index(){

    $title = 'Mall';

    $login = 'Ouyang Ke';

    # Linkes Menü

    $menu = Db::table('shop_menu')->where('fid',0)->select();

    $left = $menu->toArray();

    foreach($left as &$left_v){

    $left_v['lists'] = Db::table('shop_menu')->where('fid',$left_v['id'])->select();

    }

    # Rechte Liste

    $param = Request::param();

    if(isset($param['status']) && $param['status'] == 1){

    $where['status' ] = 1;

    }else if(isset($param['status']) && $param['status'] == 2){

              $where['status'] = 2;

      }else{

    $wo = true;

    }

    $list = Db::table('shop_goods')

    ->where($where)

    ->order('add_time DESC')

    - ->order('id DESC')

    - ->select();

    $right = $list->toArray();

    foreach($right as &$right_v){

    $right_v['cat'] = Db::table('shop_cat')->where('id',$right_v['cat'])->value('name');

    }

    Ansicht ::assign([

    'title' => $title,

    'login' => $login,

            'left' => $left,

            'right' => $right,

            'status' => isset($param['status']) ? $param['status'] : null

        ]);

        return View::fetch();

    }

    view代码

    <form class="layui-form" method="post">

        <div class="layui-form-item" style="margin-top:10px;">

            <div class="layui -input-inline">

                <select name="status">

                    <option value="0" {if $status==0}selected{/if}>全部</option>

                    < Optionswert="1" {if $status==1}selected{/if}>开启</option>

                    <option value="2" {if $status==2}selected{/if}>关闭< ;/option>

               </select>

            </div>

            <button class="layui-btnlayui-btn-primary"><i class="layui-icon"></i>搜索</button>

        </div>

    </form>

    8. Paging-Beispiel

    Controller-Code

    öffentlicher Funktionsindex(){

    $title = 'Mall';

    $login = 'Ouyang Ke';

    # Linkes Menü

    $menu = Db::table('shop_menu')->where ( 'fid',0)->select();

    $left = $menu->toArray();

    foreach($left as &$left_v){

    $left_v['lists'] = Db::table('shop_menu')->where('fid',$left_v['id'])->select();

    }

    # Rechte Liste

    $param = Request::param();

    if(isset($param['status']) && $param['status'] == 1){

    $where['status' ] = 1;

    }else if(isset($param['status']) && $param['status'] == 2){

              $where['status'] = 2;

      }else{

    $wo = true;

    }

    $p = isset($param['p']) ? $param['p'] : 1;

    // Gesamtstatistik

    $count = Db::table('shop_goods')->where($where)->count();

    $list = Db::table('shop_goods')

    -> ;wo($wo)

    ->order('add_time DESC')

    ->order('id DESC')

    ->page($p,10)

    ->select();

    $right = $list->toArray();

    foreach($right as &$right_v){

    $right_v[ 'Katze'] = Db::table('shop_cat')->where('id',$right_v['cat'])->value('name');

    }

    Ansicht ::assign([

    'title' => $title,

                                                                                                                                                => ceil($count/10),

                                                                                                                                                               param['status'] : 0

    ]);

    return View::fetch();

    }

    Code anzeigen

    <div class=" layui-boxlayui-laypagelayui-laypage-default">

    <a href="/index.php/Index/index?p={$p-1}&status={$status}" class="layui-laypage-prev {if $p<=1}layui -disabled{/if}">Vorherige Seite</a>

    {for start="0" end="$count"}

    {if $p == $i 1}

                                                           <em class="layui-laypage-em"></em>

                                                                                         </span>

                                                                   href="/index.php/Index/index?p={$i 1}&status={$status}">{$i 1}</a>

    {/if}

    {/für}

    <a href="/index.php/Index/index?p={$p 1}&status={$status}" class="layui-laypage-next {if $p>=$count}layui-disabled{/if}">Nächste Seite</a>

    </div>

    9. Vorlagenseite

    Eingebaute Paging-Implementierung Jetzt ist es sehr einfach, den Daten eine Paging-Ausgabefunktion hinzuzufügen

    • Holen Sie sich den HTML-Code zum Umblättern von Seitenpaginate

    • Gesamtmenge abrufenrender

    • Controller-Code

      total

      $select = Db::table('shop_goods')->paginate(10);
    print_r($select);echo '<hr>';

    foreach($select as $ v){

    print_r($v);echo '<hr>';

    }

    print_r($select->render());echo '<hr>';

    print_r('Total ::'.$select->total());echo '<hr>';

    View::assign([

    'select' => $select

    ]);

    return View::fetch();

    Code anzeigen

    <div>{$select|raw}</div>

    css代码

    .pagination {

        display: inline-block;

        padding-left: 0;

       Rand: 20 Pixel 0;

        border-radius: 4px;

    }

    .pagination > li {

        display: inline;

    }

    .pagination > li > a,

    .pagination > li > span {

        position: relative;

        float: left;

        padding: 6px 12px;

        margin-left: -1px;

        Zeilenhöhe: 1.42857143;

       Farbe: #337ab7;

       Textdekoration: keine;

       Hintergrundfarbe: #fff;

       Rahmen: 1 Pixel einfarbig #ddd;

    }

    .pagination > li:erstes Kind > a,

    .pagination > li:erstes Kind > span {

        margin-left: 0;

        border-top-left-radius: 4px;

        border-bottom-left-radius: 4px;

    }

    .pagination > li:last-child > a,

    .pagination > li:last-child > span {

        border-top-right-radius: 4px;

        border-bottom-right-radius: 4px;

    }

    .pagination > ; li > a:hover,

    .pagination > li > span:hover,

    .pagination > li > a:focus,

    .pagination > li > span:focus {

        z-index: 2;

        color: #23527c;

       background-color: #eee;

        border-color: #ddd;

    }

    .pagination > .aktiv > a,

    .pagination > .aktiv > span,

    .pagination > .aktiv > a:hover,

    .pagination > .aktiv > span:hover,

    .pagination > .aktiv > a:focus,

    .pagination > .aktiv > span:focus {

        z-index: 3;

        color: #fff;

       cursor: default;

       background-color: #337ab7;

       Rahmenfarbe: #337ab7;

    }

    .pagination > .disabled > span,

    .pagination > .disabled > span:hover,

    .pagination > .disabled > span:focus,

    .pagination > .disabled > a,

    .pagination > .disabled > a:hover,

    .pagination > .disabled > a:focus {

       Farbe: #777;

       Cursor: nicht zulässig;

       Hintergrundfarbe: #fff;

       Rahmenfarbe: #ddd;

    }

    10. Beispiel für eine Vorlagenseite

    参数描述
    list_rows 每页数量
    page 当前页
    pathurl路径
    query url额外参数
    fragment url锚点
    var_page 分页变量

    Controller-Code

    public function index(){

    $title = 'mall';

    $login = 'Ouyang Ke';

    # Linkes Menü

    $menu = Db::table('shop_menu')->where('fid',0)->select();

    $left = $menu->toArray();

    foreach($left as &$left_v){

    $left_v['lists'] = Db::table('shop_menu')->where('fid',$left_v['id'])->select();

    }

    # Rechte Liste

    $param = Request::param();

    if(isset($param['status']) && $param['status'] == 1){

    $where['status' ] = 1;

    }else if(isset($param['status']) && $param['status'] == 2){

              $where['status'] = 2;

      }else{

    $wo = true;

    }

    $p = isset($param['p']) ? $param['p'] : 1;

    # thinkphp kommt mit Paging

    $list = Db::table('shop_goods')

                                                                                                                                                                                    'id DESC')

                                                                                                                                                                                                                                                                                 . Request::param()

    ]);

    $right = $list->toArray();

    foreach($right as &$right_v){

    $right_v['cat'] = Db::table('shop_cat')->where('id',$right_v['cat'])->value('name');

    }

    View::assign([

    'title' = & gt; $ title,

    'login' = & gt; gt; ,

    'list' => $list,

    'status' => isset($param['status'] : 0

    ]);

    zurück View::fetch();

    }

    Code anzeigen

    <div>{$paginate|raw}</div>

    11. SQL-Debugging

    • getLastSql Zuletzt ausgeführte SQL-Anweisung ausgeben

    • getLastSql Die Methode kann nur das zuletzt ausgeführte SQL abrufen Die Methode Record

    $select = Db::table('shop_goods')->select();
    echo Db::getLastSql();
    • fetchSql gibt direkt das aktuelle SQL zurück Anstatt

    $select = Db::table('shop_goods')->fetchSql()->select();
    echo $select;

    12. Dynamische Konfigurationsdatenbank

    • config-Verzeichnis-Datenbank.php-Datei

    • < 🎜 auszuführen >
    zurück [

    'Verbindungen' => Env::get('database.type', 'mysql'),

                                                                                                                                                                           '127.0.0.1'),

                                                                                            . Benutzername

                    'Benutzername'                                                                                                                                                                           Env::get('database.username', 'root'),       => Env::get('database.password', 'root'),

                                                                                                     Env::get(' , '3306'),

                                                                                                              Die Datenbankkodierung verwendet standardmäßig utf8

    'prefix' => Env::get('database.prefix', 'shop_'),

    // Datenbankbereitstellungsmethode: 0 zentralisiert (einzelner Server), 1 verteilt (Master-Slave-Server)

    'deploy' => 0,

    // Ob die Datenbank liest und schreibt, wird durch den Haupttyp des Haupttyps getrennt

    'rw_sepalating' = & gt; false,

    // Nach dem Lesen und Schreiben wird getrennt Anzahl der Master-Server

                                                                                                                                                          ’ ’ ’ ’ ’ ’ ’ ’                                zu  = & gt; '',

    // Ob das Feld unbedingt vorhanden ist

    'Fields_Strict' = & GT; Ob es notwendig ist, die Verbindung zu trennen und wieder herzustellen

                  'break_reconnect'     => false,

                                     wahr,

                                                                                                                           'schema_cache_path' => app()->getRuntimePath() 'schema' ]

    ];

    shop_user-Tabelle in der Ouyangke-Datenbank

    CREATE TABLE `shop_user` (

    `uid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'User ID',

    `account` varchar(50) NOT NULL COMMENT 'Account',

    `password` char(32) NOT NULL COMMENT 'Passwort',

    `name` varchar(50) NOT NULL COMMENT 'Name',

    `status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'Status 1 on 2 off',
    • ` add_time` int(10) unsigned NOT NULL COMMENT 'Zeit hinzufügen',

      PRIMARY KEY (`uid`)
    ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='Backend Administrator';

    Methode zum dynamischen Konfigurieren von Datenbankverbindungsinformationen

    Db:: connect('ouyangke')->table( 'shop_user')->select();

    -Methode muss am Anfang der Abfrage aufgerufen werden und muss von der Abfragemethode gefolgt werden, andernfalls kann ein Teil der Abfrage fehlschlagen oder bleiben Sie Standard-Datenbankverbindung verwenden

    13. WHRER-Kettenoperation (nicht häufig verwendet)

    • Ähnlich wie die Abfrageausdrucksfunktion bietet ThinkPHP die folgenden schnellen Abfragemethoden

    Kontinuierlicher BetriebFunktionUnterstützte Parametertypen
    whereOr * Für ODER-AbfragenStrings, Arrays und Objekte
    whereLike*Fuzzy-AbfragenString
    whereNotLike*Fuzzy-AbfrageString
    wh ereBetween*IntervallabfrageString
    whereNotBetween*Nicht in Intervallabfrage String
    whereIn*IN-AbfrageString
    whereNotIn*Not IN queryString
    whereNull*Abfrage, ob das Feld NULL istString
    whereNotNull*Abfrage, ob das Feld nicht NU ist LLString
    whereExists*EXISTS-AbfrageString
    whereNotExists* Nicht in EXISTS-AbfrageString
    whereBetweenTime*ZeitintervallvergleichString
    whereTime*Schnellabfrage für Uhrzeit und DatumString
    whereExp* Ausdrucksabfrage, unterstützt SQL-SyntaxString
    whereFindInSet*FIND_I N_SET-AbfrageString
    whereRaw* wird für die direkte Abfrage und Operation von String-Bedingungen verwendetString

    14. Andere Kettenoperationen (nicht häufig verwendet)

    Kontinuierliche OperationenFunktion Unterstützte Parametertypen
    Alias ​​ wird verwendet, um Aliase für die aktuelle Datentabelle zu definieren. Zeichenfolge
    streng wird verwendet Satz Legen Sie fest, ob streng geprüft werden soll, ob der Feldname vorhanden ist. Boolescher Wert
    Gruppe Wird zur Gruppenunterstützung für Abfragen verwendetString
    mit wird für die Unterstützung von Abfragen verwendetString
    joi n*Wird zur Join-Unterstützung für Abfragen verwendetString und Array
    union*Wird für Abfragen unio verwendet n Unterstützt Zeichenfolgen, Arrays und Objekte
    eindeutige eindeutige Unterstützung für Abfrage Tuch Boolescher Wert
    Sperre Sperrmechanismus für Datenbank Boolescher Wert
    Cache Für Abfrage-CacheUnterstützung mehrerer Parameter
    Kommentar Für SQL-KommentarString
    force Für erzwungene Indizierung des Datensatzes String
    Partition für Einstellungen Partitionsinformationen Array String
    failException wird verwendet, um festzulegen, ob eine Ausnahme ausgelöst wird, wenn keine Daten abgefragt werden Boolescher Wert
    Sequenz wird verwendet, um den Namen der automatisch inkrementierenden Sequenz festzulegen Zeichenfolge
    ersetzen wird verwendet, um die REPLACE-Methode so einzustellen, dass sie Boolescher Wert
    extra schreibt. wird verwendet, um extra festzulegen Die Abfrageregel Zeichenfolge
    Duplikat wird verwendet, um das Array DUPLCATE-Informationen festzulegen Die Zeichenfolge
    Prozedur wird verwendet, um festzulegen, ob die aktuelle Abfrage eine Abfrage einer gespeicherten Prozedur ist Boolescher Wert
    Meister Wird verwendet, um den Hauptserver so einzustellen, dass er Daten liest.Boolescher Wert
    Ansicht*Wird für die Ansichtsabfrage verwendet String, Array

    15. Transaktionsvorgang

    • InnoDBDie Engine unterstützt die Transaktionsverarbeitung, MyISAMunterstützt keine Transaktionsverarbeitung

    • Die Methode
    // 启动事务
    Db::startTrans();
    $data = ['cat'=>'1','title'=>'日系小浪漫与温暖羊毛针织拼接网纱百褶中长收腰连衣裙','price'=>'1598.35','add_time'=>1576080000];
    $insert = Db::table('shop_goods')->insert($data);
    if(empty($insert)){
        // 回滚事务
        Db::rollback();
    }else{
        // 提交事务
        Db::commit();
    }
    • transaction führt Datenbanktransaktionen aus. Wenn im Code im Abschluss eine Ausnahme auftritt, wird ein Rollback durchgeführt

    Db::transaction(function () {
        $data = ['cat'=>'1','title'=>'日系小浪漫与温暖羊毛针织拼接网纱百褶中长收腰连衣裙','price'=>'1598.35','add_time'=>1576080000];
        $insert = Db::table('shop_goods')->insert($data);
    });

    16. Datensatz

    • Die Datenbank wird durch Auswählen abgefragt und das Datensatzobjekt erhalten

    • Der Datensatz zurückgegeben Das Objekt ist thinkCollection, das die gleiche Verwendung wie ein Array bietet und außerdem einige zusätzliche Methoden

      kapselt
    NummerMethodeBeschreibung
    1 isEmpty ist leer
    2 toArray konvertieren in Array
    3 alle alle Daten
    4 merge Andere Daten zusammenführen
    5 diff Arrays vergleichen und zurückgeben Differenzsatz zurückgeben
    6 umdrehen Schlüssel und Werte in den Daten austauschen
    7 Schnittmenge Arrays vergleichen und Schnittmenge zurückgeben
    8 ke ys Alle Schlüsselnamen in den Daten zurückgeben
    9 pop Die Schlüsselnamen in den Daten löschen Das letzte Element
    10 Verschiebung Das erste Element in den Daten löschen
    11 unshift Ein Element am Anfang der Daten einfügen
    12 drücken Ein Element am Ende einfügen
    13 reduzieren Mit der benutzerdefinierten Funktion das Array als Zeichenfolge zurückgeben
    14 Umkehrungen e Daten in umgekehrter Reihenfolge neu angeordnet
    15 Chunk Daten in mehrere aufgeteilt Datenblock
    16 jeder Rückruf für jedes Element der Daten ausführen
    17 Filter Rückruffunktion verwenden, um Elemente in den Daten zu filtern
    18 Spalte Gibt die angegebene Spalte in den Daten zurück
    19sortierenDaten sortieren
    20 Reihenfolge Feldsortierung angeben
    21 Shuffle Shuffle die Daten
    22 Slice Einen Teil der Daten abfangen
    23 mapVerwenden Sie die Rückruffunktion, um die Elemente im Array zu verarbeiten
    24 wo Elemente im Array basierend auf Feldbedingungen filtern
    25 wo eLikeGefällt mir-Abfragefilterelement
    26 whereNotLike Nicht Wie Filterelement
    27 whereIn IN-Abfrage Filtern Sie die Elemente im Array
    28 whereNotIn Nicht IN-Abfrage filtert die Elemente im Array
    29whereBetween Betwe Eine Abfrage filtert die Elemente im Array
    30whereNotBetweenNicht Zwischen der Abfrage werden die Elemente im Array
    gefiltert
    $select = Db::table('shop_goods')
                ->field('title,price,id')
                ->where('status',1)
                ->order('price','DESC')
                ->select();
    if($select->isEmpty()){
        echo '未查询到数据';
    }else{
        print_r($select->toArray());
    }

    Vorbereitung: Führen Sie eine Datensatzabfrage im Modell durch. Alle Datensatzobjekte werden zurückgegeben, aber thinkmodelCollection类 (geerbt von thinkCollection) wird verwendet, die Verwendung ist jedoch konsistent.