In diesem Artikel werden hauptsächlich die Betriebsmethoden zum Hinzufügen, Löschen, Ändern und Abfragen von thinkPHP-Datenbanken vorgestellt und die häufig verwendeten Datenbankbetriebsfunktionen und zugehörigen Verwendungsfähigkeiten von thinkPHP anhand von Beispielen detailliert analysiert
Dieser Artikel beschreibt die Beispiele der thinkPHP-Datenbankbetriebsmethode zum Hinzufügen, Löschen, Ändern und Überprüfen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
thinkphp kapselt das Hinzufügen, Löschen, Ändern und Abfragen der Datenbank, was die Verwendung komfortabler, aber nicht unbedingt flexibel macht.
kann in der Kapselung verwendet werden. Sie müssen SQL schreiben und können SQL ausführen.
1. Original
$Model = new Model(); // 实例化一个model对象 没有对应任何数据表 $insert_sql = "INSERT INTO sh_wxuser_collection (user_id,store_id,good_id,addtime) VALUES('".$user_id."','".$store_id."','".$good_id."','".$addtime."');"; $Model - >query($insert_sql);
2. Zur Tabelleninstanziierung , hier der Originalname der Tabelle ist sh_wxuser_collection. sh ist das Präfix.
$model = M('wxuser_collection'); //自动省去sh $insert_sql = "INSERT INTO __TABLE__ (user_id,store_id,good_id,addtime) VALUES('".$user_id."','".$store_id."','".$good_id."','".$addtime."');"; $model - >query($insert_sql);
Eine andere Schreibweise: _ kann in Großbuchstaben geschrieben werden, es wird automatisch in _ umgewandelt
$model = M('WxuserCollection'); //自动省去sh $insert_sql = "INSERT INTO __TABLE__ (user_id,store_id,good_id,addtime) VALUES('".$user_id."','".$store_id."','".$good_id."','".$addtime."');"; $model - >query($insert_sql);
3. Gekapselte Add-Anweisung
$model = M('WxuserCollection'); $data = array('user_id' = >$user_id, 'store_id' = >$store_id, 'good_id' = >$good_id, 'addtime' = >$addtime); $model - >data($data) - >add();
4. Gekapselte Modify-Edit-Anweisung
$model = M('WxuserCollection'); $data = array('user_id' = >$user_id, 'store_id' = >$store_id, 'good_id' = >$good_id, 'addtime' = >$addtime); $model - >data($data) - >where('id=3') - >save();
Es ist zwar sehr praktisch, aber abgesehen von der Bequemlichkeit darf man nicht vergessen, dass das Original-SQL, das Original-SQL, das Interessanteste ist.
5.find()
$model = M('WxuserCollection'); $res1 = $model - >find(1); $res2 = $model - >find(2); $res3 = $model - >where('good_id=1105 AND store_id = 1 AND user_id = 20') - >find();
find ruft ein Datenelement ab, find(1) ruft die ID ab von 1 Daten, find(2) ruft die Daten mit der ID 2 ab. Der letzte Schritt besteht darin, die ersten Daten mit der Bedingung wo abzurufen.
5.select()
$model = M('WxuserCollection'); $res = $model - >where('good_id=1105 AND store_id = 1 AND user_id = 20') - >field('id,good_id as good') - >select();
Alle Daten abrufen. Der Vorteil hierbei ist, dass Sie nicht auf die Reihenfolge der SQL-Anweisungen achten müssen, sondern die Funktion einfach beliebig aufrufen können.
6.delete()
$model = M('WxuserCollection'); $res = $model - >where('id=1') - >delete(); // 成功返回1 失败返回0
Vorgänge basierend auf Bedingungen löschen
7.field()
$model = M('WxuserCollection'); $res = $model - >field('id,good_id as good') - >select(); $res = $model - >field(array('id', 'good_id' = >'good')) - >select(); $res = $model - >field('id', true) - >select();
Zwei Möglichkeiten sind String und Array, und die dritte bedeutet, Handle zu erhalten alle Felder außer id.
8.order()
$model = M('WxuserCollection'); $res = $model - >order('id desc') - >select(); $res = $model - >order('id asc') - >select(); $res = $model - >order(array('id' = >'desc')) - >select(); $res = $model - >order(array('id')) - >select();
String, Array zwei Methoden, Standard aufsteigend.
9.join()
$Model->join(' work ON artist.id = work.artist_id')->join('card ON artist.card_id = card.id')->select(); $Model->join('RIGHT JOIN work ON artist.id = work.artist_id')->select(); $Model->join(array(' work ON artist.id = work.artist_id','card ON artist.card_id = card.id'))->select();
Die LEFT JOIN-Methode wird standardmäßig verwendet andere JOIN-Methoden. Es kann in die zweite Methode geändert werden.
Wenn die Parameter der Join-Methode Arrays sind, kann die Join-Methode nur einmal verwendet werden und kann nicht mit der String-Methode gemischt werden.
10.setInc()
$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
11.getField()
Erhalten Sie einen Feldwert
$User = M("User"); // 实例化User对象 // 获取ID为3的用户的昵称 $nickname = $User->where('id=3')->getField('nickname');
Der zurückgegebene Spitzname ist ein String-Ergebnis. Das heißt, selbst wenn mehrere Felder die Bedingung erfüllen, wird nur ein Ergebnis zurückgegeben.
Eine bestimmte Feldspalte abrufen
Wenn Sie eine Feldspalte (mehrere Ergebnisse) zurückgeben möchten, die den Anforderungen entspricht, können Sie Folgendes verwenden:
$User = M("User"); // 实例化User对象 // 获取status为1的用户的昵称列表 $nickname = $User->where('status=1')->getField('nickname',true);
Der zweite Parameter wird in true übergeben und der zurückgegebene Spitzname ist ein Array mit einer Liste aller Spitznamen, die die Bedingungen erfüllen.
Wenn Sie die Anzahl der zurückgegebenen Ergebnisse begrenzen müssen, können Sie Folgendes verwenden:
$nickname = $User->where('status=1')->getField('nickname',8);
2 Feldlisten abrufen
$User = M("User"); // 实例化User对象 // 获取status为1的用户的昵称列表 $nickname = $User->where('status=1')->getField('id,nickname');
Wenn die getField-Methode mehrere Feldnamen übergibt, gibt sie standardmäßig ein assoziatives Array mit dem Wert des ersten zurück Feld als Index (also das erste Feld. Versuchen Sie, ein Feld auszuwählen, das nicht wiederholt wird).
Mehrere Feldlisten abrufen
$result = $User->where('status=1')->getField('id,account,nickname');
Wenn mehr als 2 Felder im Feld übergeben werden Name, dann wird ein zweidimensionales Array zurückgegeben (ähnlich dem Rückgabewert der Select-Methode, der Unterschied besteht darin, dass der Schlüsselname des Index der Wert des ersten Felds im zweidimensionalen Array ist)
Umfassender Anwendungsfall
$where = array('a.store_id' => $this->store_id, 'a.user_id' => $this->user_id); $collects = $this->collectModel->table("sh_wxuser_collection a")->field(array('b.name','b.price','b.oprice','b.logoimg','a.goods_id'))->limit($start, $offset)->order('a.addtime DESC')->where($where)->join(' sh_goods b ON a.goods_id = b.id')->select();// 获取当前页的记录 echo M()->getLastSql(); // 调试sql语句用 $count = $this->collectModel->table("sh_wxuser_collection a")->where($where)->count(); // 获取总的记录数
Da hier zwei Tabellen kombiniert werden, wird die Tabellenmethode zur Neudefinition des verwendet Der Tabellenname und die entsprechenden Bedingungen und Parameter sind So fügen Sie ein Präfix hinzu. a. Oder b.
wobei das Feld field entweder eine Zeichenfolge oder ein Array ist.
field('b.name', 'b.price', 'b.oprice', 'b.logoimg', 'a.goods_id') // 错误
Ich habe das schon einmal geschrieben und es ist ein riesiges Problem.
Mit einem Framework können Sie SQL nicht flexibel schreiben. Ein tiefes Verständnis von SQL hilft Ihnen jedoch auch dabei, das Framework flexibel zu nutzen.
Methode zum Debuggen von SQL-Anweisungen.
echo M()->getLastSql();
Sehr praktisch.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
PHP lädt Excel-Dateien hoch, um Daten in die MySQL-Datenbank zu importieren
thinkPHP5 implementiert die Methode zum Hinzufügen von Inhalten zur Datenbank
Das obige ist der detaillierte Inhalt vonVorgänge in der thinkPHP-Datenbank hinzufügen, löschen, ändern und abfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!