Heim > Artikel > Backend-Entwicklung > TP5-Datenbankoperationen
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!