Heim Backend-Entwicklung PHP-Tutorial Vorgänge in der thinkPHP-Datenbank hinzufügen, löschen, ändern und abfragen

Vorgänge in der thinkPHP-Datenbank hinzufügen, löschen, ändern und abfragen

Jun 07, 2018 pm 03:22 PM
thinkphp 增删改查 数据库

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

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

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();
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

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

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

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

11.getField()

Erhalten Sie einen Feldwert

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

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(); // 获取总的记录数
Nach dem Login kopieren

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') // 错误
Nach dem Login kopieren

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

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

thinkphp3.2.3 Version Datenbankerweiterungen , Löschungen und Änderungen Überprüfen Sie den Implementierungscode

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!

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So führen Sie das Thinkphp-Projekt aus So führen Sie das Thinkphp-Projekt aus Apr 09, 2024 pm 05:33 PM

So führen Sie das Thinkphp-Projekt aus

Es gibt mehrere Versionen von thinkphp Es gibt mehrere Versionen von thinkphp Apr 09, 2024 pm 06:09 PM

Es gibt mehrere Versionen von thinkphp

So führen Sie thinkphp aus So führen Sie thinkphp aus Apr 09, 2024 pm 05:39 PM

So führen Sie thinkphp aus

Wie implementiert die Go-Sprache die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank? Wie implementiert die Go-Sprache die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank? Mar 27, 2024 pm 09:39 PM

Wie implementiert die Go-Sprache die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank?

So installieren Sie thinkphp So installieren Sie thinkphp Apr 09, 2024 pm 05:42 PM

So installieren Sie thinkphp

Was ist besser, Laravel oder Thinkphp? Was ist besser, Laravel oder Thinkphp? Apr 09, 2024 pm 03:18 PM

Was ist besser, Laravel oder Thinkphp?

Wie ist die Leistung von thinkphp? Wie ist die Leistung von thinkphp? Apr 09, 2024 pm 05:24 PM

Wie ist die Leistung von thinkphp?

Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Jun 04, 2024 pm 01:42 PM

Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP

See all articles