Heim  >  Artikel  >  Backend-Entwicklung  >  TP5-Datenbankoperationen

TP5-Datenbankoperationen

*文
*文Original
2017-12-29 18:04:425505Durchsuche

Die Betriebsdatenbank ist die Grundlage für den Projektbetrieb, und TP5 bietet uns sehr praktische Betriebsmethoden. In diesem Artikel erfahren Sie, wie TP5 die Datenbank betreibt, und ich hoffe, dass er für alle hilfreich ist.

setField aktualisiert den Wert eines Feldes

1

    $User = M("User"); // 实例化User对象
    // 更改用户的name值
    $User-> where('id=5')->setField('name','ThinkPHP');

2 Die setField-Methode unterstützt das gleichzeitige Aktualisieren mehrerer Felder. Sie müssen nur ein Array übergeben , zum Beispiel:

      $User = M("User"); // 实例化User对象
    // 更改用户的name和email的值
    $data = array('name'=>'ThinkPHP','email'=>'ThinkPHP@gmail.com');
    $User-> where('id=5')->setField($data);

Zum Aktualisieren statistischer Felder (normalerweise numerischer Typen) stellt das System auch die Methoden setInc und setDec bereit.

    $User = M("User"); // 实例化User对象
    $User->where('id=5')->setInc('score',3); // 用户的积分加3
    $User->where('id=5')->setInc('score'); // 用户的积分加1
    $User->where('id=5')->setDec('score',5); // 用户的积分减5
    $User->where('id=5')->setDec('score'); // 用户的积分减1

Aktualisieren Sie die Daten in der Datentabelle

    Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);

Wenn die Daten den Primärschlüssel enthalten, können Sie ihn direkt verwenden:

    Db::table('think_user')->update(['name' => 'thinkphp','id'=>1]);

Das Update Die Methode gibt die Elemente zurück, die sich auf die Datennummer auswirken, es wurden keine Daten geändert und 0 wird zurückgegeben

Wenn die zu aktualisierenden Daten die Verwendung von SQL-Funktionen oder anderen Feldern erfordern, können Sie die folgende Methode verwenden:

    Db::table('think_user')
        ->where('id', 1)
        ->update([
            'login_time'  => ['exp','now()'],
            'login_times' => ['exp','login_times+1'],
        ]);

Aktualisieren Sie den Wert eines Feldes:

    Db::table('think_user')->where('id',1)->setField('name', 'thinkphp');

Die setField-Methode gibt die Anzahl der betroffenen Daten zurück. Wenn kein Datenfeld geändert wird, gibt sie 0

Inkremente zurück oder dekrementiert den Wert eines Feldes

    setInc/setDec 如不加第二个参数,默认值为1
    // score 字段加 1
    Db::table('think_user')->where('id', 1)->setInc('score');
    // score 字段加 5
    Db::table('think_user')->where('id', 1)->setInc('score', 5);
    // score 字段减 1
    Db::table('think_user')->where('id', 1)->setDec('score');
    // score 字段减 5
    Db::table('think_user')->where('id', 1)->setDec('score', 5);

Verzögerte Aktualisierung

setInc/setDec unterstützt verzögerte Aktualisierung. Wenn eine verzögerte Aktualisierung erforderlich ist, übergeben Sie den dritten Parameter

Im Im folgenden Beispiel beträgt die Verzögerung 10 Sekunden und 1 wird zum Score-Feld hinzugefügt

    Db::table('think_user')->where('id', 1)->setInc('score', 1, 10);

Die setInc/setDec-Methode gibt die Anzahl der betroffenen Daten zurück

Assistenzfunktion

    // 更新数据表中的数据
    db('user')->where('id',1)->update(['name' => 'thinkphp']);
    // 更新某个字段的值
    db('user')->where('id',1)->setField('name','thinkphp');
    // 自增 score 字段
    db('user')->where('id', 1)->setInc('score');
    // 自减 score 字段
    db('user')->where('id', 1)->setDec('score');

Schnelles Update (V5.0.5+)

V5.0.5+ oder höher Die Methoden data, inc, dec und exp der Versionskapselung sind Kettenoperationsmethoden und können in Verbindung mit update verwendet werden.

Hier ist ein Beispiel zur Veranschaulichung der Verwendung:

    Db::table('data')
        ->where('id',1)
        ->inc('read')
        ->dec('score',3)
        ->exp('name','UPPER(name)')
        ->update();

Verwandte Empfehlungen:

Beispiel für die TP5 Auth-Berechtigungsverwaltung

Detaillierte Erläuterung des automatischen TP5-Lademechanismus

Zusammenfassung der TP5-Modellfunktionen

Das obige ist der detaillierte Inhalt vonTP5-Datenbankoperationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn