(3)Thinkphp6数据库

目录

一.创建数据库

1.管理员表

 2.商品分类表

3.商品表

4.菜单表

二.连接数据库

三.执行原生Mysql

​四.框架内-查询操作

五.添加

六.修改

七.删除


要使用Db类必须使用门面方式(think\facade\Db)调用

数据库操作统一入口:Db::

数据库管理软件:phpMyAdmin(网页数据库管理),Navicat for MySql(Windows软件数据库管理)

以下使用的是phpMyAdmin

一.创建数据库

1.管理员表

CREATE TABLE `shop_admin`(
	`uid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID', 
	`account` varchar(50) NOT NULL COMMENT '账户',
	`password`char(32) NOT NULL COMMENT '密码',
	`name` varchar(50)NOT NULL COMMENT '姓名',
	`status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '状态 1开启 2关闭',
	`add_time` int(10) unsigned NOT NULL COMMENT '添加时间',
	PRIMARY KEY (`uid`)
)ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='后台管理员';
----------------------------------------------------------------------------------
INSERT INTO `shop_admin` VALUES(1,'admin','e10adc3949ba59abbe56e057f20f883e','小鱼',1,1605163389); 

 2.商品分类表

DROP TABLE IF EXISTS `shop_cat`;
CREATE TABLE `shop_cat`(
	`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
	`name` varchar(50) NOT NULL COMMENT'分类名',
	`status` tinyint(1) unsigned NOT NULL DEFAULT '1'COMMENT'状态1开启2关闭',
	 PRIMARY KEY(`id`)
)ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT='分类表';

INSERT INTO `shop_cat` VALUES(1,'女装',1);
INSERT INTO `shop_cat`  VALUES(2,'男装',1); 
INSERT INTO `shop_cat`  VALUES(3,'童装',1); 
INSERT INTO `shop_cat`  VALUES(4,'女鞋',1); 
INSERT INTO `shop_cat`  VALUES(5,'男鞋',1);
INSERT INTO `shop_cat` VALUE(6,'母婴',1); 

3.商品表

CREATE TABLE `shop_goods`(
	`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT'商品ID',
	`cat` int(10) unsigned NOT NULL DEFAULT '1'COMMENT'分类ID',
	`title` varchar(200) NOT NULL COMMENT'商品标题',
	`price` double(10,2) unsigned NOT NULL COMMENT'价格',
	`discount` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '折扣',
	`stock` int(10) unsigned NOT NULL DEFAULT '1'COMMENT '库存',
	`status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT'状态 1开启 2关闭 3删除',
	`add_time` int(10) unsigned NOT NULL COMMENT'添加时间',
	 PRIMARY KEY(`id`)
)ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COMMENT='商品表';

INSERT INTO`shop_goods` VALUES(1,1,'lolita裙原创外套斗篷洛丽塔裙子冬季',999.99,0,1100,1,1605163489);
INSERT INTO`shop_goods` VALUES(2,1,'樱洛芙Lolita原创小裙子',499.00,0,100,1,1605163589);

4.菜单表

CREATE TABLE `shop_menu`(
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`title` varchar(50) NOT NULL COMMENT'菜单名',
`fid` int(10) NOT NULL COMMENT'父ID',
`status` tinyint(1) unsigned NOT NULL DEFAULT '1'COMMENT'状态 1开启2关闭',
 PRIMARY KEY(`id`)
)ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COMMENT='左侧菜单表';
INSERT INTO`shop_menu` VALUES(1,'商品管理',0,1);
INSERT INTO`shop_menu` VALUES(2,'商品列表',1,1);
INSERT INTO`shop_menu`  VALUES(3,'商品分类',1,1); 
INSERT INTO`shop_menu` VALUES(4,'用户管理',0,1); 
INSERT INTO `shop_menu` VALUES(5,'用户列表',4,1); 
INSERT INTO`shop_menu` VALUES(6,'购物车',4,1); 
INSERT INTO`shop_menu` VALUES(7,'用户地址',4,1); 
INSERT INTO`shop_menu` VALUES(8,'订单管理',4,1); 
INSERT INTO`shop_menu`  VALUES(9,'后台管理',0,1); 
INSERT INTO`shop_menu`  VALUES(10,'管理员列表',9,1);
INSERT INTO`shop_menu`  VALUES(11,'个人中心',9,1); 
INSERT INTO`shop_menu`  VALUES (12,'左侧菜单',9, 1); 

 二.连接数据库

 如果应用需要使用数据库,必须配置数据库连接信息,数据库的配置文件有很多种定义方式。

在全局或者应用配置目录下面的detabase.php中(后面统称为数据库配置文件)配置下面的数据库参数

三.执行原生Mysql

四.框架内-查询操作

 1.单条数据查询 find

find 方法查询结果不存在,返回null,否则返回结果数组

public function index(){
    $find =Db::table('shop_goods')->find(2);
    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(){
    $value =Db::table('shop_goods')->column('title','id');
    dump($value)
}
--------------------------------------------------------------
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'=>'T恤','price'=>'90.00','add_time'=>'1605163489']
    $insert=Db::table(shop_goods)->insert($data);
    print_r($insert);
}

2.添加一条数据insertGetId

insertGetId 方法添加数据成功返回添加数据的自增主键

public function index(){
    $data=['cat'=>'1','title'=>'123T恤','price'=>'90.00','add_time'=>'1605163489']
    $insert=Db::table(shop_goods)->insertGetId($data);
    print_r($insert);
}

3.添加多条数据insertAll

insertAll 方法添加数据成功返回添加成功的条数

public function index(){
    $data=[
        ['cat'=>'2','title'=>'T恤','price'=>'90.00','add_time'=>'1605163489']'
        ['cat'=>'1','title'=>'T恤','price'=>'190.00','add_time'=>'1605163489']'
        ['cat'=>'2','title'=>'T恤','price'=>'239.00','add_time'=>'1605163489']
    $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 方法自减一个字段的值

public function index(){
    $dec=Db::table('shop_goods')->where('id',7)->dec('stock')->update();
    print_r($dec);
//字段的值减去5
    $dec=Db::table('shop_goods')->where('id',8)->dec('stock',5)->update();
    print_r($dec);
}

七.删除

1.删除数据delete

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);
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值