Base de données ThinkPHP6.0
Base de données ThinkPHP6
Les opérations de la base de données et du modèle ThinkPHP6 ont été indépendantes en tant que
bibliothèque ThinkORM
ThinkORM库
要使用Db类必须使用门面方式(
thinkfacadeDb
)调用数据库操作统一入口:
Db::
thinkfacadeDb < /code>) Appelez entrée unifiée pour les opérations de base de données : Db::
1. Logiciel de gestion de base de données 1, phpMyAdmin (gestion de base de données de pages Web) 2, Navicat pour MySql (gestion de base de données du logiciel Windows)
2. Créer une base de données
1. Table d'administrateur
CREATE TABLE `shop_admin` ( `uid` int(10) non signé NOT NULL AUTO_INCREMENT COMMENT 'ID utilisateur ', ` account` varchar(50) NOT NULL COMMENT 'Compte', `password` char(32) NOT NULL COMMENT 'Mot de passe', `name` varchar(50) NOT NULL COMMENT 'Nom', `status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'State 1 on 2 off',
`add_time` int(10) unsigned NOT NULL COMMENT 'Add time',
PRIMARY KEY (`uid `)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='Backend Administrator';INSERT INTO `shop_admin` VALUES (1, 'ouyangke', 'e10adc3949ba59abbe56e057f20f883e', 'ouyangke', 1, 1 576080000); 2. Table de classification des produits
DROP TABLE IF EXISTS `shop_cat`;CREATE TABLE `shop_cat` ( `id` int(10) non signé NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(50) NOT NULL COMMENT 'category name',
`status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT 'status 1 on 2 off',
PRIMARY KEY (`id`)
) ENGINE =MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT='Tableau de classification';
INSERT INTO `shop_cat` VALUES (1, 'Vêtements pour femmes', 1);INSERT INTO `shop_cat` VALUES (2, 'Vêtements pour hommes'', 1);INSÉRER DANS LES VALEURS `shop_cat` (3, 'Maternité', 1);INSÉRER DANS LES VALEURS `shop_cat` (4, 'Vêtements pour enfants', 1);
INSÉRER DANS LES VALEURS `shop_cat` (5, 'TV', 1);
INSÉRER DANS LES VALEURS `shop_cat` (6, 'Téléphone portable', 1);INSÉRER DANS LES VALEURS `shop_cat` (7, 'Ordinateur' , 1);3 , Table des produits
CREATE TABLE `shop_goods` ( `id` int(10) non signé NOT NULL AUTO_INCREMENT COMMENT 'ID produit', `cat` int(10) non signé NOT NULL PAR DÉFAUT '1' COMMENTAIRE 'ID de classification',🎜🎜 `titre` varchar(200) NON NULL COMMENTAIRE 'Titre du produit',🎜🎜 `prix` double(10,2) non signé NON NULL COMMENTAIRE 'Prix',🎜🎜 ` discount` tinyint(1) non signé NON NULL PAR DÉFAUT '0' COMMENTAIRE 'Remise',🎜 `stock` int(10) non signé NON NULL PAR DÉFAUT '1' COMMENTAIRE 'Stock',
`status` tinyint(1) non signé NON NULL PAR DÉFAUT '1' COMMENTAIRE 'Statut 1 ouvert 2 fermé 3 supprimé',
` add_time` int(10) unsigned NOT NULL COMMENT 'Add time',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COMMENT='Product table';
INSERT DANS LES VALEURS `shop_goods` (1, 1, 'Jupe féerique légère, jupe longue haut de gamme à taille perlée, robe élégante sans manches', 279,99, 0, 1100, 1, 1576080000);
INSÉRER DANS LES VALEURS `shop_goods` ( 2, 1, 'Robe trapèze en velours côtelé style Cool Royal Sister pour femmes automne et hiver 2019 nouvelle jupe rétro amincissante à la taille', 255.90, 0, 100, 1, 1576080000);
Tableau de menu
CRÉER UNE TABLE ` shop_menu` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`title` varchar(50) NOT NULL COMMENT 'nom du menu',
`fid` int(10) NOT NULL COMMENT 'ID parent',
`status` tinyint(1) non signé NON NULL PAR DÉFAUT '1' COMMENTAIRE 'Statut 1 activé 2 désactivé',
CLÉ PRIMAIRE (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET =utf8mb4 COMMENT='Tableau du menu de gauche';
INSERT INTO `shop_menu` VALUES (1, 'Product management', 0, 1);
INSERT INTO `shop_menu` VALUES (2, 'Product management' List ', 1, 1);
INSÉRER DANS LES VALEURS `shop_menu` (3, 'Catégorie de produit', 1, 1);
INSÉRER DANS LES VALEURS `shop_menu` (4, 'Gestion des utilisateurs', 0, 1);
INSÉRER DANS LES VALEURS `shop_menu` (5, 'Liste des utilisateurs', 4, 1);INSÉRER DANS LES VALEURS `shop_menu` (6, 'Panier', 4, 1);INSÉRER DANS LES VALEURS `shop_menu` ( 7, 'Adresse utilisateur', 4, 1) ; , 1);INSÉRER DANS LES VALEURS `shop_menu` (10, 'Liste des administrateurs', 9, 1);INSÉRER DANS LES VALEURS `shop_menu` (11, 'Centre personnel', 9, 1); INSÉRER DANS `shop_menu` VALEURS (12, 'Menu de gauche', 9, 1);3. Exécuter MySql natif
1 La méthode query
est utilisée pour exécuter des opérations de requête MySql
public. function index(){
$query = Db::query("SELECT * FROM `shop_goods`where status=1");query
方法用于执行 MySql 查询操作
public function index(){
$query = Db::query("SELECT * FROM `shop_goods` where status=1");
print_r($query);
}
2、execute
print_r($query);}
2、execute < /code>La méthode est utilisée pour effectuer des opérations MySql nouvelles et modifiées🎜public function index(){🎜🎜 $execute = Db::execute("INSERT INTO `shop_goods` VALUES (3, 1, '2019 Autumn and Winter Nouvelle mode jupe longue en cachemire pur cachemire épaissi à col rond, robe fine et élégante pour femme', 1179.00, 0, 200, 1, 1576080000)");🎜🎜 print_r($execute);🎜 $execute = Db::execute("UPDATE `shop_goods` set `price`='1100'where `id`=3 ");
print_r($execute);
}
Requête
IV. 1. Requête de données unique find
find
le résultat de la requête n'existe pas, renvoie null, sinon renvoie le tableau de résultatsfind
方法查询结果不存在,返回 null,否则返回结果数组
public function index(){
$find = Db::table('shop_goods')->find(5);
print_r($find);
}
2、多条数据查询 select
select
方法查询结果是一个二维数组,如果结果不存在,返回空数组
public function index(){
$select = Db::table('shop_goods')->select();
print_r($select);
}
3、查询某个字段的值 value
value
方法查询结果不存在,返回 null
public function index(){
$value = Db::table('shop_goods')->value('title');
print_r($value);
}
4、查询某一列的值 column
column
方法查询结果不存在,返回空数组
public function index(){
$column = Db::table('shop_goods')->column('title');
print_r($column);
$column = Db::table('shop_goods')->column('title','id');
print_r($column);
}
五、添加
1、添加一条数据 insert
insert
方法添加数据成功返回添加成功的条数,通常情况返回 1
public function index(){
$data = ['cat'=>'1','title'=>'日系小浪漫与温暖羊毛针织拼接网纱百褶中长收腰连衣裙','price'=>'1598.35','add_time'=>1576080000];
$insert = Db::table('shop_goods')->insert($data);
print_r($insert);
}
2、添加一条数据 insertGetId
insertGetId
public function index(){
$find = Db: :table('shop_goods')->find(5);
print_r($find);
🎜}🎜🎜🎜2. Sélection de requêtes de données multiples🎜🎜🎜🎜select
requête de méthode Le résultat est un tableau à deux dimensions. Si le résultat n'existe pas, un tableau vide est renvoyé 🎜🎜🎜🎜🎜public function index(){🎜🎜 $select = Db::table('shop_goods')-. >select();🎜🎜 print_r ($select);🎜🎜}🎜🎜🎜3. Interroger la valeur d'une certaine valeur de champ🎜🎜🎜🎜Le résultat de la requête de la méthode value
n'existe pas et renvoie null🎜🎜🎜🎜🎜public function index() {🎜🎜🎜 $value = Db::table('shop_goods')->value('title');🎜🎜 print_r($value);🎜🎜}🎜🎜 🎜4. Interroger la valeur d'une colonne colonne🎜🎜 🎜🎜Le résultat de la requête de la méthode column
n'existe pas et renvoie un tableau vide🎜🎜🎜🎜🎜public function index(){🎜🎜🎜 $column = Db::table('shop_goods')->column('title');🎜🎜 print_r($column);🎜🎜 $column = Db::table('shop_goods')->column('title', 'id');🎜🎜 print_r($column);🎜 🎜}🎜🎜🎜 5. Ajouter 🎜🎜1. Ajouter une donnée insert🎜🎜🎜🎜insert
La méthode ajoute des données avec succès et renvoie le nombre d'éléments ajoutés avec succès. Normalement, il renvoie 1🎜🎜🎜🎜🎜🎜public function index(){🎜🎜🎜 $data = ['cat'=>'1','title'=>'Japanese. robe mi-longue plissée en maille de laine tricotée romantique et chaude','price '=>'1598.35','add_time'=>1576080000];🎜🎜 $insert = Db::table('shop_goods')-> ;insert($data);🎜🎜 print_r($insert);🎜🎜 }🎜🎜🎜2. Ajouter une donnée insertGetId🎜🎜🎜🎜insertGetId
La méthode ajoute des données avec succès et renvoie l'auto -clé primaire incrémentée des données ajoutées🎜🎜🎜🎜🎜🎜index de fonction publique(){🎜🎜🎜 $data = ['cat'=>'1','title'=>'Robe pull tricotée 2019 automne et hiver nouveau style jupe ample en laine à manches longues mi-longue décontractée pour femme','price'=>'690.00', 'add_time'=>1576080000];🎜 $insert = Db::table('shop_goods')->insertGetId($data);
print_r($insert);
}
3. Ajoutez plusieurs éléments de données insertAll
INSERTALL
Méthode pour ajouter des données pour revenir avec succès pour ajouter un numéro réussi insertAll
方法添加数据成功返回添加成功的条数public function index(){
$data = [
['cat'=>'1','title'=>'秋冬加厚连衣裙女超长款宽松羊绒衫高领套头过膝毛衣百搭针织长裙','price'=>'658.00','add_time'=>1576080000],
['cat'=>'1','title'=>'2019新款秋冬慵懒风宽松毛衣针织连衣裙复古港味网红两件套','price'=>'408.00','add_time'=>1576080000],
['cat'=>'2','title'=>'男士长袖t恤秋季圆领黑白体恤T 纯色上衣服打底衫男装','price'=>'99.00','add_time'=>1576080000]
];
$insert = Db::table('shop_goods')->insertAll($data);
print_r($insert);
}
六、修改
1、修改数据 update
update
方法返回影响数据的条数,没修改任何数据返回 0
public function index(){
$data = ['price'=>'68'];
$update = Db::table('shop_goods')->where('id',8)->update($data);
print_r($update);
}
2、自增 inc
inc
方法自增一个字段的值
public function index(){
$inc = Db::table('shop_goods')->where('id',5)->inc('stock')->update();
print_r($inc);
# 字段的值增加5
$inc = Db::table('shop_goods')->where('id',6)->inc('stock',5)->update();
print_r($inc);
}
3、自减 dec
dec
Indice de fonction publique () {$ data = [
['cat' = & gt; 'title' > 'cat'=>'1','title'=>'2019 Nouvel automne et hiver style paresseux pull ample robe tricotée rétro style Hong Kong ensemble deux pièces de célébrité d'Internet','price'=> '408.00','add_time' =>1576080000],
['cat'=>'2','title'=>'T-shirt manches longues homme automne col rond T-shirt noir et blanc hauts et chemises de couleur unie pour hommes','price'= >'99.00','add_time'=>1576080000]
];
$insert = Db::table('shop_goods')->insertAll ($data);
🎜 print_r($insert);🎜 🎜}🎜🎜6 Modification
🎜1. La méthode Modifier la mise à jour des données🎜🎜🎜🎜update
renvoie le numéro. des données concernées, si aucune donnée n'est modifiée, elle renvoie 0🎜🎜🎜🎜 🎜public function index(){🎜🎜 $data = ['price'=>'68'];🎜🎜 $update = Db::table ('shop_goods')->where('id',8)- >update($data);🎜🎜 print_r($update);🎜🎜}🎜🎜🎜2. La méthode inc incrémente la valeur d'un champ🎜🎜🎜🎜 🎜public function index(){🎜🎜 $inc = Db::table('shop_goods')->where('id',5)-> ;inc('stock')->update();🎜🎜 print_r($inc);🎜🎜 # Augmente la valeur du champ de 5🎜🎜 $inc = Db::table('shop_goods')-> où('id',6)->inc('stock',5) ->update();🎜🎜 print_r($inc);🎜🎜}🎜🎜🎜3. La méthode >dec décrémente la valeur d'un champ🎜🎜🎜🎜🎜 🎜public function index(){🎜🎜 # Soustraire 1 de la valeur du champ🎜🎜 $dec = Db::table('shop_goods')-> ;where('id',7)->dec('stock') ->update();🎜🎜 print_r($dec);🎜🎜 # Soustraire 5 de la valeur du champ $dec = Db::table( 'shop_goods')->where('id',8)- >dec('stock',5)->update();🎜print_r($dec);
}
7. Supprimer les données
1. La méthode Supprimer les données
delete
renvoie le nombre de données affectées et renvoie 0 si elles ne sont pas supprimées. br/ >delete
方法返回影响数据的条数,没有删除返回 0
public function index(){
# 根据条件删除数据
$delete = Db::table('shop_goods')->where('id',1)->delete();
print_r($delete);
# 删除主键为2的数据
$delete = Db::table('shop_goods')->delete(2);
print_r($delete);
# 删除整表数据
$delete = Db::table('shop_goods')->delete(true);
print_r($delete);
}
2、软删除 useSoftDelete
业务数据不建议真实删除数据,TP系统提供了软删除机制
public function index(){
# 软删除
$delete = Db::table('shop_goods')->useSoftDelete('status',3)->delete();
print_r($delete);
}
八、其他操作(自学)
save
public function index(){ #Supprimer les données en fonction des conditions $delete = Db::table('shop_goods')->where('id',1)-> delete() ; print_r($delete); # Supprimer les données avec la clé primaire 2 $delete = Db::table('shop_goods')->delete(2); print_r($delete) ; # Supprimez l'intégralité des données de la table $delete = Db::table('shop_goods')->delete(true); print_r($delete);}2. code>useSoftDelete< /code>
- Il n'est pas recommandé de supprimer réellement les données des données professionnelles. Le système TP fournit un mécanisme de suppression logicielle🎜🎜🎜public function index(){🎜🎜 # Soft delete🎜🎜. $delete = Db::table('shop_goods ')->useSoftDelete('status',3)->delete();🎜🎜 print_r($delete);🎜🎜}🎜🎜🎜8. auto-apprentissage) 🎜🎜🎜🎜
save < La méthode /code> écrit les données de manière uniforme et détermine automatiquement s'il faut ajouter ou mettre à jour des données (en fonction de la présence ou non de données de clé primaire dans les données écrites). 🎜🎜🎜🎜🎜public function index(){🎜🎜 # Add data🎜🎜 $data = ['cat'=>'2','title'=>'Metersbonwe jean court pour femme été 2018 Nouveau taille moyenne style magasin de jeans slim délavés','price'=>'49.90','add_time'=>1576080000];🎜🎜 $save = Db::table('shop_goods')->save($data );🎜 🎜 print_r($save);🎜🎜 # Modifier les données🎜🎜 $data = ['price'=>'99.00','id'=>3];🎜🎜 $save = Db::table( 'shop_goods' )->save($data);🎜🎜 print_r($save);🎜🎜}🎜🎜🎜Remarque : l'ajout, la suppression, la vérification et la modification sont des opérations de routine🎜🎜9 L'ensemble de données🎜🎜🎜🎜Thinkphp fournit beaucoup de choses. de traitement des méthodes de jeu de données🎜
Méthode | Description |
toArray | Convertir en tableau |
isEmpty | Est-il vide |
tout | Toutes les données |
fusionner | Fusionner d'autres données |
diff | Comparez les tableaux et retournez la différence |
flip | Échangez les clés et les valeursdans les données |
intersection | Comparez les tableaux et retournez l'intersection |
clés | Retour tout dans les données Nom de la clé |
pop | Supprimer le dernier élément des données |
shift | Supprimer le premier élément des données |
unshift | Insérer un élément au début des données |
push | Insérer un élément à la fin |
réduire | En utilisant des fonctions définies par l'utilisateur, renvoyer le tableau sous forme de chaîne |
reverse | Réorganiser les données dans l'ordre inverse |
chunk | Les données sont séparées en plusieurs blocs de données |
each | Exécuter un rappel pour chaque élément des données |
filtrer | Utiliser la fonction de rappel pour filtrer les éléments dans la colonne de données |
Renvoyer la colonne spécifiée dans les données | |
sort | Data Tri |
order | Spécifiez le champ à trier |
shuffle | Mélanger les données |
slice | Intercepter une partie des données |
map | La fonction de rappel traite les éléments du tableau |
where | Filtre les éléments du tableau en fonction des conditions de champ |
whereLike | Like élément de filtre de requête |
whereNotLike | Pas comme l'élément de filtre |
oùDans | IN Interroge et filtre les éléments d'un tableau |
whereNotIn | Not IN interroge les éléments du tableau de filtres |
whereBetween | Between interroge les éléments du tableau de filtres |
whereNotBetween | Pas entre les requêtes les éléments du tableau de filtres |
public function index(){
$select = Db::table('shop_goods')->select();
if($select->isEmpty()){
echo '未找到数据';
}
print_r($select->toArray());
}
十、示例
controller代码
namespace appcontroller;
use thinkfacadeView ;
Index de classe{
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');
}
View::assign([
'title' => $title,
'login' => $connexion,
'gauche' => $gauche,
'droite' => $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>Titre du produit< ;/th> ;
t;
" }< prix}</td> ($right_v.discount/10)} {/if}
</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>
<button class="layui-btn layui -btn-xs" onclick="edit()">编辑</button>
<button class="layui-btn layui-btn-danger layui-btn-xs" onclick="del()"> ;删除</button>
</td> </tr>
{/volist}
</tbody>
</table>
</div>
{include file="public/bottom" /}