目录
一.创建数据库
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中(后面统称为数据库配置文件)配置下面的数据库参数

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