Detaillierte Erläuterung der Beispiele für das Hinzufügen, Löschen, Ändern und Abfragen von ThinkPHP-Datenbanken

高洛峰
Freigeben: 2023-03-04 18:10:01
Original
1459 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt die Vorgehensweise zum Hinzufügen, Löschen, Ändern und Abfragen der thinkPHP-Datenbank. 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);
Nach dem Login kopieren


2. Der ursprüngliche Name der Tabelle lautet hier 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);
Nach dem Login kopieren


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);
Nach dem Login kopieren


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();
Nach dem Login kopieren


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();
Nach dem Login kopieren


Es ist in der Tat sehr praktisch, aber vergessen Sie neben der Bequemlichkeit nicht das Original-SQL, das Original-SQL, das am interessantesten 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();
Nach dem Login kopieren


find ruft ein Datenelement ab, find(1) ruft die Daten mit der ID 1 ab, 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();
Nach dem Login kopieren


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
Nach dem Login kopieren


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();
Nach dem Login kopieren


Es gibt zwei Möglichkeiten für String und Array. Die dritte Möglichkeit bedeutet, alle Felder außer der Verarbeitungs-ID abzurufen.

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();
Nach dem Login kopieren


Zwei Methoden sind String und Array, der Standardwert ist asc.

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();
Nach dem Login kopieren


Die LEFT JOIN-Methode wird standardmäßig verwendet. Wenn Sie andere JOIN-Methoden verwenden müssen, können Sie diese ändern

Wenn die Parameter der Join-Methode Arrays sind, kann die Join-Methode nur einmal verwendet werden und sie kann nicht mit String-Methoden 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
Nach dem Login kopieren


11.getField()

Einen Feldwert abrufen

$User = M("User"); // 实例化User对象
// 获取ID为3的用户的昵称
$nickname = $User->where('id=3')->getField('nickname');
Nach dem Login kopieren


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);
Nach dem Login kopieren


Der zweite Parameter wird in true übergeben und der zurückgegebene Spitzname ist ein Array, das eine Liste aller Spitznamen enthält, 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);
Nach dem Login kopieren


2 Feldlisten abrufen

$User = M("User"); // 实例化User对象
 // 获取status为1的用户的昵称列表
$nickname = $User->where('status=1')->getField('id,nickname');
Nach dem Login kopieren


Wenn die getField-Methode mehrere Feldnamen übergibt, wird standardmäßig ein assoziatives Array mit dem Wert des ersten Felds als Index zurückgegeben (daher sollte das erste Feld als nicht ausgewählt werden). -möglichst duplizieren).

Mehrere Feldlisten abrufen

$result = $User->where('status=1')->getField('id,account,nickname');
Nach dem Login kopieren


Wenn mehr als 2 Feldnamen übergeben werden, wird ein zweidimensionales Array zurückgegeben (ähnlich wie select-Methode Der Rückgabewert von Da zwei Tabellen kombiniert werden, wird die Tabellenmethode verwendet, um den Tabellennamen neu zu definieren und den entsprechenden Bedingungen und Parametern ein Präfix voranzustellen. a. Oder b.

wobei das Feld field entweder eine Zeichenfolge oder ein Array ist.

Ich habe so schon einmal geschrieben und es ist ein großes Problem.
$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(); // 获取总的记录数
Nach dem Login kopieren

Mit einem Framework können Sie SQL nicht flexibel schreiben. Allerdings ist auch ein tiefes Verständnis von SQL förderlich für den flexiblen Einsatz des Frameworks.

Methode zum Debuggen von SQL-Anweisungen.

Ich hoffe, dass dieser Artikel für jedermann beim PHP-Programmdesign basierend auf dem ThinkPHP-Framework hilfreich sein wird.

field('b.name', 'b.price', 'b.oprice', 'b.logoimg', 'a.goods_id') // 错误
Nach dem Login kopieren
Ausführlichere Beispiele für die Methoden zum Hinzufügen, Löschen, Ändern und Abfragen der thinkPHP-Datenbank finden Sie auf der chinesischen PHP-Website für verwandte Artikel!

Verwandte Artikel:

Bitten Sie um Rat, wie Sie Ihre eigenen Funktionen und Klassen in thinkphp schreiben, wo Sie sie platzieren und wie Sie sie aufrufen

echo M()->getLastSql();
Nach dem Login kopieren

thinkPHP ist ein einfacher Beispielcode zum Aufrufen von Funktionen und Klassenbibliotheksmethoden

Das ThinkPHP3.2-Framework verwendet addAll(), um die Datenmethode stapelweise zum Teilen einzufügen

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage