ThinkPHP6.0-Datenbank
ThinkPHP6-Datenbank
ThinkPHP6 Datenbank- und Modelloperationen waren unabhängig, da
ThinkORM库
Um die Db-Klasse zu verwenden, müssen Sie die Fassadenmethode (
thinkfacadeDb
) verwenden, um < aufzurufen 🎜>- Datenbankbetrieb Einheitlicher Zugang:
Db::
TABELLE „shop_admin“ erstellen ( ` uid ` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Benutzer-ID', `Konto` varchar(50) NICHT NULL KOMMENTAR 'Konto', `Passwort` char(32) NICHT NULL KOMMENTAR 'Passwort', `name` varchar(50) KEIN NULL-KOMMENTAR 'Name', `status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'Status 1 on 2 off', `add_time` int(10) unsigned NOT NULL COMMENT 'Zeit hinzufügen', PRIMÄRSCHLÜSSEL (`uid`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='Backend Administrator';2. ProduktklassifizierungstabelleINSERT INTO `shop_admin` VALUES (1, 'ouyangke', 'e10adc3949ba59abbe56e057f20f883e', 'Ouyang Ke', 1, 1576080000);
TROPFEN-TABELLE, WENN EXISTIERT `shop_cat`;CREATE TABLE `shop_cat` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `name` varchar(50 ) KEIN NULL-KOMMENTAR 'Kategoriename', `status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'Status 1 an und 2 aus', PRIMARY KEY (`id`)3. Produkttabelle) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT='Klassifizierungstabelle';
INSERT INTO `shop_cat` VALUES (1, 'Damenbekleidung', 1);INSERT INTO ` shop_cat` VALUES (2, 'Herrenbekleidung', 1);INSERT INTO `shop_cat` VALUES (3, 'Maternity', 1);INSERT INTO `shop_cat` VALUES (4, 'Children's Clothing', 1);INSERT INTO `shop_cat` VALUES (5, 'TV', 1);INSERT INTO `shop_cat` VALUES (6, 'Mobile phone', 1);INSERT INTO `shop_cat` VALUES (7, 'Computer', 1);
CREATE TABLE `shop_goods` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ' Produkt-ID', `cat` int(10) unsigned NOT NULL DEFAULT '1' COMMENT 'Category ID', `title` varchar(200) NOT NULL COMMENT 'Product title', `price` double(10,2) unsigned NOT NULL COMMENT 'Preis', `Rabatt` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'Rabatt',`stock` int(10) unsigned NOT NULL DEFAULT '1' COMMENT 'Stock',
`status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'Status 1 auf 2 aus 3 Löschen',
`add_time` int(10) unsigned NOT NULL COMMENT 'Zeit hinzufügen',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COMMENT='Product List';
INSERT INTO `shop_goods` VALUES (1, 1, 'Wolkenartiger leichter Feenrock, hochwertiger, perlenbesetzter langer Rock in der Taille, elegant ärmelloses Kleid', 279,99, 0, 1100, 1, 1576080000);
INSERT INTO `shop_goods` VALUES (2, 1, „High-cold Royal Sister Style Cord-A-Linien-Kleid für Damen im Herbst und Winter 2019, neuer Taillen-Schlankheits-Retro-Rock“, 255,90, 0, 100, 1, 1576080000);
4. Menütabelle
CREATE TABLE `shop_menu` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`title` varchar(50) NOT NULL COMMENT 'Menüname',
`fid` int(10) NOT NULL COMMENT 'Parent ID',
`status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'Status 1 ist aktiviert 2Close',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COMMENT='Linke Menütabelle';
EINFÜGEN IN `shop_menu` VALUES (1, 'Product Management', 0, 1);
INSERT INTO `shop_menu` VALUES (2, 'Product List', 1, 1);
INSERT INTO `shop_menu` VALUES (3, 'Produktkategorie', 1, 1);
INSERT INTO `shop_menu` VALUES (4, 'User Management', 0, 1);
INSERT INTO `shop_menu` VALUES (5, 'User List', 4, 1);
INSERT INTO `shop_menu` VALUES (6, 'Warenkorb', 4, 1);
INSERT INTO `shop_menu` VALUES (7, 'User address', 4, 1);
INSERT INTO `shop_menu` VALUES (8, 'Auftragsverwaltung', 4, 1);
INSERT INTO `shop_menu` VALUES (9, 'Backend-Verwaltung', 0, 1);
INSERT INTO `shop_menu` VALUES (10, 'Administrator list', 9, 1);
INSERT INTO `shop_menu ` WERTE (11, 'Persönliches Zentrum', 9, 1);
INSERT INTO `shop_menu` VALUES (12, 'Linkes Menü', 9, 1);
3. Natives MySql ausführen
1. Die Methode query
wird zum Ausführen der MySql-Abfrage verwendet Operationen
öffentliche Funktion index(){
$query = Db::query("SELECT * FROM `shop_goods` where status=1");
print_r($query);
}
2. Zur Ausführung wird die Methode execute
verwendet MySql neue und geänderte Operationen
public function index(){
$execute = Db::execute("INSERT INTO `shop_goods` VALUES (3, 1, '2019 Autumn and Winter Neues modisches und einfaches reines Kaschmir-verdicktes Rundhals-Kaschmir-Langrock, schlankes und elegantes Kleid für Damen, 1179,00, 0, 200, 1, 1576080000)");
print_r($execute);
$execute = Db::execute("UPDATE `shop_goods` set `price`='1100' where `id`=3 ");
print_r($execute);
}
4. Abfrage
1 🎜>Das Ergebnis der Methodenabfrage existiert nicht, kehren Sie zurück null, andernfalls wird das Ergebnisarray zurückgegeben
find
public function index(){
print_r($find);
}2. Mehrfache Datenabfrage Das Abfrageergebnis der Methode select
ist ein zweidimensionales Array. Wenn das Ergebnis nicht vorhanden ist, wird ein leeres Array zurückgegeben 🎜>
public function index(){- $select = Db::table('shop_goods')->select();
select
print_r($select); }
public function index(){3. Fragen Sie ein bestimmtes Feld ab Wert Wert
Ergebnis der Methodenabfrage existiert nicht, Rückgabe null
$value = Db::table('shop_goods')->value('title');
print_r($value);value
öffentlicher Funktionsindex(){Methodenabfrageergebnis existiert nicht und gibt ein leeres Array zurück
4. Abfrage Wert einer Spalte Spalte
$column = Db::table('shop_goods')->column('title');
print_r($column);column
print_r($column);
}5. Fügen Sie einen Dateneinschub hinzu
Wenn die Methode erfolgreich Daten hinzufügt, gibt sie die Anzahl der erfolgreich hinzugefügten Elemente zurück 1
public function index(){
- $data = ['cat'=>'1','title'=>'Japanisches romantisches und warmes Wollstrick-Spleißnetz-Faltenkleid mit mittlerer Taille','price'=>'1598.35','add_time' => 1576080000];
print_r($insert);insert
$insert = Db::table('shop_goods')->insert($data);
fügt Daten erfolgreich hinzu und gibt den automatisch inkrementierten Primärschlüssel der hinzugefügten Daten zurück
2. Fügen Sie a hinzu Daten Die Methode insertGetId
public function index() {
- $data = ['cat'=>'1','title'=>'Strickpulloverkleid 2019 Herbst und Winter im neuen Stil, lose Wolle, langärmeliger, mittellanger, lässiger Rock für Damen','price'=>'690,00 ',' add_time'=>1576080000];
$insert = Db::table('shop_goods')->insertGetId($data);
print_r($insert);
}
3. Fügen Sie mehrere Daten hinzu Die Methode insertAll
insertAll
fügt erfolgreich Daten hinzu und gibt die Anzahl der erfolgreich hinzugefügten Elemente zurück
öffentlicher Funktionsindex (){
$data = [
['cat'=>'1','title'=>'Herbst- und Winterverdicktes Kleid für Damen, extra langer, lockerer Kaschmirpullover, Rollkragenpullover, Overknee-Pullover, vielseitiger gestrickter langer Rock','Preis '=>'658.00 ','add_time'=>1576080000],
['cat'=>'1','title'=>'2019 Neue Herbst und Winter Lazy Style Lose Pullover Strickkleid Retro Hong Kong Stil Internet Celebrity Zwei-stück Set','price'=>'408,00' ,'add_time '=>1576080000],
['cat'=>'2','title'=>'Herren langärmeliges T-Shirt Herbst Rundhals schwarz-weißes T-Shirt T einfarbiges Ober- und Unterhemd Herren','price'=> '99.00','add_time '=>1576080000]
];
$insert = Db::table('shop_goods')->insertAll($data);
print_r($insert);
}
6. Änderung
1. Daten ändern Die Methode „update“ gibt die Anzahl der betroffenen Daten zurück. Wenn keine Daten geändert werden, wird „0“ zurückgegeben Funktion index() {
- $data = ['price'=>'68'];
$update = Db::table('shop_goods')->where('id',8)->update($data);
print_r($update);update
2. Die Methode increment inc
erhöht den Wert eines Feldes
öffentliche Veranstaltung index(){
- $inc = Db::table('shop_goods')->where('id',5)->inc('stock')->update();
print_r($inc);
# Der Wert des Feldes erhöht sich um 5inc
public function index(){print_r($inc);
}
3 Die Methode decdekrementiert den Wert eines Feldes
- # Subtrahiere 1 vom Feldwert
print_r($dec) ;dec
$dec = Db::table('shop_goods')->where('id',7)->dec('stock')->update();
$dec = Db::table('shop_goods')->where('id',8)->dec('stock',5)->update();
print_r($dec);
}
7. Daten löschen löschen
- Methode gibt die Anzahl der betroffenen Daten zurück, es wird keine Löschung zurückgegeben 0
delete
# Daten basierend auf Bedingungen löschen
$delete = Db::table('shop_goods')->where('id',1)->delete();
print_r($delete);
# Löschen Sie den Primärschlüssel als 2 Daten
$delete = Db::table('shop_goods')->delete(2);
print_r($delete);
# Die gesamten Tabellendaten löschen
$delete = Db::table('shop_goods')->delete(true);
print_r($delete);
}
2useSoftDelete
- Es wird nicht empfohlen, Daten für Geschäftsdaten tatsächlich zu löschen. Das TP-System bietet einen sanften Löschmechanismus
# Soft delete
$delete = Db::table('shop_goods')->useSoftDelete('status',3)->delete();
print_r($delete);
}
8. Andere Operationen (Selbststudium) Die Methode- schreibt Daten einheitlich, Bestimmen Sie automatisch, ob Daten hinzugefügt oder aktualisiert werden sollen (basierend darauf, ob die geschriebenen Daten Primärschlüsseldaten enthalten).
save
# Daten hinzufügen
$data = ['cat'=>'2','title'=>'Metersbonwe Drei-Punkt-Jeans Damen 2018 Sommer neue Slim-Fit-Jeans mit mittlerer Taille und gewaschenem Einkaufszentrum-Stil','price'=>'49,90', ' add_time'=>1576080000];
$save = Db::table('shop_goods')->save($data);
print_r($save);
# Daten ändern
$data = ['price'=>'99.00','id'=>3];
$save = Db::table('shop_goods')->save($data);
print_r($save);
}
Hinweis: Hinzufügen, Löschen, Überprüfen und Ändern sind Routinevorgänge9. Datensatz
- Thinkphp bietet viele Methoden zur Verarbeitung von Datensätzen
public function index(){
$select = Db::table('shop_goods')->select();
if($select ->isEmpty()){
echo '未找到数据';
}
print_r($select->toArray());
}
十、示例
controller代码
namespace appcontroller ;
verwenden thinkfacadeView;
class Index{
public function index(){
$title = '商城';
$login = '欧阳克';
$menu = Db::table('shop_menu')->where('fid',0)->select();
$left = $menu->toArray();
foreach($left as &$left_v){
$left_v['lists'] = Db::table('shop_menu')->where('fid',$left_v['id'])->select();
}
$list = Db::table('shop_goods')->select();
$right = $list->toArray();
foreach($right as &$right_v){
$right_v['cat'] = Db::table('shop_cat')->where('id',$right_v['cat'])->value('name');
}
Anzeigen ::assign([
'title' => $title,
'login' => $login,
'left' => $left,
'right' => $right
]);
return View::fetch();
}
}
view代码:index.html
{include file="public/head" /}
{ include file="public/left" /}
<div class="main" style="padding:10px;">
<div class="content">
<span>商品列表</span>
< ;button class="layui-btn layui-btn-sm" onclick="add()">添加</button>
<div></div>
</div>
<th>ID</th>
<th>Kategorie</th>
<th>Rabatt</th>
<th>Inventar</th>
<th>Hinzufügen. Zeit</th>
</thead>
<tr>
<td>{$right_v.title}</td>
<td>{$right_v.price}</td>
<td>
{$right_v.price*($right_v.discount/10)}
{$right_v.price}
</td>
<td>{$right_v.stock}</td>
<td>{if $right_v['status']==1}开启{else/}关闭{/if}</td>
<td>{$right_v.add_time|date='Y-m-d'}</td>
<td>
<Schaltfläche class="layui-btnlayui-btn-xs" onclick="edit()">编辑</button>
<button class="layui-btnlayui-btn-dangerlayui-btn -xs" onclick="del()">删除</button>
</td>
</tr>
{/volist}
</tbody>
</table>
</div>
{include file="public/ unten" /}
Methode Beschreibung toArray In Array konvertieren isEmpty Ob es leer ist alle Alle Daten zusammenführen Andere Daten zusammenführen diff Arrays vergleichen und den Differenzsatz zurückgeben flip Tauschen Sie die Schlüssel und Werte in den Daten aus Schnittmenge Vergleichen Sie die Arrays und geben Sie die Schnittmenge zurück Schlüssel Alle Schlüsselnamen in den Daten zurückgeben pop Das letzte Element in den Daten löschen shift Löschen Sie das erste Element in den Daten unshift Fügen Sie ein Element am Anfang der Daten ein drücken Ein Element am Ende einfügen reduzieren Das Array mithilfe einer benutzerdefinierten Funktion als Zeichenfolge zurückgeben Umkehren Daten in umgekehrter Reihenfolge anordnen Chunk Daten werden in mehrere Datenblöcke aufgeteilt jeder Rückruf für jedes Element der Daten ausführen Filter r Rückruffunktion verwenden, um Elemente in Daten zu filtern Spalte Gibt die angegebene Spalte in den Daten zurück sortieren Sortieren Sie die Daten Reihenfolge Feldreihenfolge angeben Mischen Daten desorganisieren Slice Einen Teil der Daten abfangen map Rückruffunktion verwenden, um Elemente im Array zu verarbeiten wo Filterelemente im Array basierend auf Feldbedingungen whereLike Like-Abfragefilterelemente whereNotLike Nicht Wie Filterelement whereIn IN Abfrageelement im Filterarray whereNotIn Nicht IN fragt die Elemente im Filterarray whereBetween Between fragt die Elemente im Filterarray whereNotBetween <🎜 ab >