ThinkPHP6之数据库操作下

news2024/12/23 17:18:46

ThinkPHP6之数据库操作下

  • 前言
  • 一,查询表达式
      • 1.1 where
      • 1.2table和name
      • 1.3field
      • 1.4limit
      • 1.5page
      • 1.6 order
  • 二, 聚合查询
  • 三,分页查询
  • 总结


前言

数据库操作除了增,删,查,改,这四个基本操作外,还有一些细节东西处理,记住这句话,了解对应的链式操作用链式操作,不懂链式操作直接使用query()和excute()


一,查询表达式

在进行查询表达式之前做如下两件事:

  1. 添加sql语句
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, 'ouyangke', 'e10adc3949ba59abbe56e057f20f883e', 'yk', 1, 1576080000);

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` VALUES (6, '手机', 1);
INSERT INTO `shop_cat` VALUES (7, '电脑', 1);

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, '云朵般轻盈的仙女裙 高级钉珠收腰长裙 气质无袖连衣裙', 279.99, 0, 1100, 1, 1576080000);
INSERT INTO `shop_goods` VALUES (2, 1, '高冷御姐风灯芯绒a字连衣裙女秋冬2019年新款收腰显瘦复古裙子', 255.90, 0, 100, 1, 1576080000);


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);
  1. 在app\controller\index.php文件的index方法中写代码

1.1 where

  1. 模糊查询like
  $user = Db::table('shop_menu')->where('title', 'like', '商品%')->select()->toArray();
        printf('<pre>%s</pre>', print_r($user, true));

        $user = Db::table('shop_menu')->where('title', 'not like', '商品%')->select()->toArray();
        printf('<pre>%s</pre>', print_r($user, true));
  1. 区间查询between
  $user = Db::table('shop_cat')->where('id', 'between', '3,6')->select()->toArray();
        printf('<pre>%s</pre>', print_r($user, true));

        $user = Db::table('shop_cat')->where('id','not between','3,6')->select()->toArray();
        printf('<pre>%s</pre>', print_r($user, true));

  1. 内容查询in
 $user = Db::table('shop_cat')->where('id', 'in', '3,6,1')->select()->toArray();
        printf('<pre>%s</pre>', print_r($user, true));

        $user = Db::table('shop_cat')->where('id', 'not in', '3,6,1')->select()->toArray();
        printf('<pre>%s</pre>', print_r($user, true));

1.2table和name

  1. table要写完整的前缀
  2. name不写完整的前缀,在config\database.php数据库配置 ‘prefix’
        $menu = Db::name('menu')->select()->toArray();
        printf('<pre>%s</pre>', print_r($menu, true));

        $menu = Db::name('menu')->select()->toArray();
        printf('<pre>%s</pre>', print_r($menu->order('fid,asc'), true));

使用name的时候要进行数据库配置,如下所示:
在这里插入图片描述

1.3field

选择哪几行进行输出

 $menu = Db::name('menu')->field('id,fid')->select()->toArray();
        printf('<pre>%s</pre>', print_r($menu, true));

注意要查询的字段用一个引号阔起来

1.4limit

如果只有一个参数就是获取多少条数据,两个参数就是从多少条开始,并且取多少条数据

   $menu = Db::name('menu')->limit(7,5)->select();
        printf('<pre>%s</pre>', print_r($menu, true));

1.5page

第一个参数是第几页,第二个参数就是每页有多少数据

 $menu = Db::name('menu')->page(2,2)->select();
        printf('<pre>%s</pre>', print_r($menu, true));

1.6 order

<?php

namespace app\controller;

use think\facade\View;
use think\facade\Db;

class Index
{
    public function index()
    {
        
        $menu = Db::name('menu')->order('id','desc')->select()->toArray();
        printf('<pre>%s</pre>', print_r($menu, true));

    }
}

二, 聚合查询

如下式聚合函数

在这里插入图片描述

$menu = Db::name('menu')->count();
printf('<pre>%s</pre>', print_r($menu, true));
$menu = Db::name('menu')->where('id','>=',3)->count();
printf('<pre>%s</pre>', print_r($menu, true));

其他的自己测验

三,分页查询

分页查询教程地址


总结

要使用框架的什么功能,就添加上什么类,比如,要使用数据库操作,添加use think\facade\Db,要使用View,就使用use think\facade\view,要使用model功能,就添加use think\model

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/455296.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】二叉搜索树(概念、实现、应用以及OJ题详解)

前言&#xff1a; 此前我们在C语言实现数据结构的时候学习过二叉树&#xff0c;但是那个时候我们没有深入学习二叉搜索树。本章重提二叉树并详解二叉搜索树有下面两个原因&#xff1a; 1、为我们下一章学习set和map做准备&#xff1b;2、详解我们进阶一点的二叉树的面试OJ题&a…

120名顶级技术专家用GPT-4搞出的脑洞发明大赏

文 | 智商掉了一地 黑客松&#xff08;Hackathon&#xff09;是一种聚集程序员、设计师等技术人才&#xff0c;共同在短短几天的时间内合作进行软件开发、解决问题的活动。参与者可分为个人和团队形式参与&#xff0c;他们将利用这段时间内的集中创作和多学科合作&#xff0c;迅…

Java网络编程系列之NIO

Java网络编程系列之NIO 1.Java NIO概述1.1 阻塞IO1.2 非阻塞IO1.3 NIO概述1.3.1 Channels1.3.2 Buffer1.3.3 Selector 2.Java NIO(Channel)2.1Channel概述2.2 Channel实现2.3 FileChannel 介绍与示例2.4 FileChannel 操作详解2.4.1 打开FileChannel2.4.2 从FileChannel读取数据…

带你一步步实现代码开发平台——概述、实现模式、整体框架

概述 低代码开发平台是一种开发工具&#xff0c;它允许用户使用图形界面和少量编码来创建应用程序。这种平台的目的是加快应用程序开发速度&#xff0c;减少开发成本和技能门槛。目前&#xff0c;市场上有许多低代码开发平台可供选择&#xff0c;包括Microsoft Power Apps、Ou…

学系统集成项目管理工程师(中项)系列11a_沟通管理(上)

1. 基本概念 1.1. 构成 1.1.1. 接收者和发送者 1.1.1.1. 参与者既发送信息&#xff0c;又接收反馈&#xff0c;是一体的 1.1.2. 信息&#xff08;Message&#xff09; 1.1.2.1. 多个参与者之间需要分享的信息&#xff0c;表达思想和情感的组成物 1.1.2.2. 信息的存在方式…

虚拟化技术 — Libvirt 异构虚拟化管理组件

目录 文章目录 目录Libvirtlibvirt API 函数库libvirtd Daemon软件架构权限模式运行模式XML 格式 virsh CLI Libvirt QEMU-KVM 环境部署HostOS 配置优化&#xff08;可选的&#xff09;开启 KVM Nested 嵌套虚拟化安装 CentOS GNOME 图形界面安装 Libvirt QEMU-KVM Libvirt 的…

C语言ctype.h头文件中2类好用的库函数

本篇博客会讲解C语言ctype.h这个头文件中的2类好用的库函数&#xff0c;分别是字符分类函数和字符转换函数。 字符分类函数 字符分类函数&#xff0c;指的是判断一个字符是不是属于某个类别&#xff0c;如果属于这个类别&#xff0c;返回非0数&#xff1b;如果不属于这个类别…

性能测试工具 IxChariot:Tcl脚本调用方法介绍

ixChariot是一款功能强大的性能测试软件&#xff0c;可用来测试有线和无线性能&#xff0c;可以模拟真实应用程序流量&#xff0c;并提供关键性能指标&#xff0c;包括吞吐量、丢包、抖动、延迟、MOS等。本文简单介绍如何使用IxChariot Tcl API来实现自动化跑流。 目录 IxChari…

RK3399平台开发系列讲解(调试篇)断言的使用

🚀返回专栏总目录 文章目录 一、什么是断言二、静态断言三、运行时断言沉淀、分享、成长,让自己和他人都能有所收获!😄 📢断言为我们提供了一种可以静态或动态地检查程序在目标平台上整体状态的能力,与它相关的接口由头文件 assert.h 提供。 一、什么是断言 在编程中…

浏览器状态同步和路由-SSR和单页面应用的分析 【单页面应用和服务端渲染】

目录 单页面应用&#xff08;优缺点&#xff09;&#xff08;Single Page Application&#xff09; 优点&#xff1a; SPA的缺点&#xff1a; 服务端渲染&#xff08;Server Side Rendering&#xff09; SSR示例&#xff08;一个ssr小引擎&#xff09; SSR优缺点分析 总结…

Opencv+Python笔记(八)轮廓检测

目录 一、轮廓的检测和绘制1.读入图像2.将读入图像转化为灰度图3.对灰度图进行二值化 [图像的阈值化处理](https://blog.csdn.net/Ggs5s_/article/details/130301816?spm1001.2014.3001.5501)4.进行轮廓检测5.在原图中显示轮廓 二、轮廓层级关系1.RET_LIST2.RETR_EXTERNAL3. R…

座椅内饰如何「跟上」智能电动?这款智能概念座舱看到未来

进入智能电动汽车时代&#xff0c;理想的车内空间应该是怎样的&#xff1f;作为“内饰空间创造者”、全球三大汽车座椅及内饰厂商之一&#xff0c;丰田纺织在2023上海车展上给出了一系列解决方案。 4月19日&#xff0c;丰田纺织携诸多产品亮相本次上海车展&#xff0c;包括面向…

【速卖通】 AliExpress(速卖通)关键词搜索结果采集

采集场景 在AliExpress(速卖通) 首页中 http://www.aliexpress.com 中输入关键词&#xff0c;采集关键词搜索后得到的商品列表信息。 采集字段 关键词、标题、商品id、商品图片地址、商品详情链接、价格、免费退送货、星级、已出售数量、店铺名 采集结果 采集结果可导出为E…

C语言入门篇——函数篇

1、什么是函数 首先&#xff0c;什么是函数&#xff1f;函数(function)是完成特定任务的独立程序代码。单元语法规则定义了函数的结构和使用方式。虽然C中的函数和其他语言中的函数、子程序、过程作用相同&#xff0c;但是细节上略有不同。 为什么使用函数&#xff1f; 首先…

刷题训练2之AcWing第 96 场周赛

竞赛 - AcWing 一、完美数 4876. 完美数 - AcWing题库 1、题目 如果一个正整数能够被 2520 整除&#xff0c;则称该数为完美数。 给定一个正整数 n&#xff0c;请你计算 [1,n]范围内有多少个完美数。 输入格式 一个整数 n。 输出格式 一个整数&#xff0c;表示 [1,n] 范…

【社区图书馆】操作系统的经典书籍

操作系统的经典书籍 一、引言二、书籍的选择三、优缺点3.1、《操作系统》3.2、《计算机操作系统》 小结 一、引言 《操作系统》罗宇和《计算机操作系统》汤小丹这两本书都是关于操作系统的经典书籍&#xff0c;各有优势。 二、书籍的选择 首先&#xff0c;从内容深度上&…

倾斜摄影超大场景的三维模型的顶层合并常见的问题分析

倾斜摄影超大场景的三维模型的顶层合并常见的问题分析 倾斜摄影超大场景的三维模型顶层合并是将多个局部区域的点云或网格数据进行融合&#xff0c;生成一个整体的三维模型的过程。在这个过程中&#xff0c;常见的问题包括&#xff1a; 1、数据不一致。由于数据采集时间、空间…

SAP SM30表格维护生成器隐藏记录日志字段

1.背景 在表格维护生成器中往往会隐藏记录日志字段&#xff0c;不让用户直接查看&#xff0c;而供运维或者开发部门使用&#xff0c;如下所示&#xff1a; 2.实现 2.1 SM30逻辑流和屏幕元素中删除日志记录字段 2.2 创建事件&#xff0c;写入记录日志代码 2.2.1 记录日志方式…

Node.js使用CORS解决跨域问题的三种方法

目录 1、通过CORS中间键解决2、设置响应头3、app.all解决4、解决跨域问题案例 现如今&#xff0c;实现跨域数据请求&#xff0c;最主要的两种解决方案&#xff0c;分别是JSONP和CORS. JSONP:出现的早&#xff0c;兼容性好&#xff08;兼容低版本IE&#xff09;。是前端程序员为…

m1下利用dockerdesktop安装ELK

一、背景&#xff1a;公司有一个需求&#xff0c;就是将txt中的数据加载到es中&#xff0c;之前没用过es&#xff0c;想着先在本地安装一个&#xff0c;然后再做测试。 二、安装docker desktop 打开docker的官网&#xff0c;下载苹果芯片的docker 网址&#xff1a;https://ww…