本文将提到:

1.原生查询操作的读操作:query()

2.原生查询操作的写操作:insert/update/delete,execute()

3.查询构造器

4.where()函数:可以根据其他字段查询

5.order(),limit()函数


对于数据库的配置在框架中app\config\database.php中已经配置好了,所以下面将默认已经连接上了数据库

作为例子展示的数据表:


1.原生查询操作的读操作:query()

public function demo1()
{
$sql = "SELECT `userName` FROM `admin` WHERE `id`=:id ";
$map = ['id' => 1];
$res = Db::query($sql, $map);
dump($res);//打印查询结果$res
}

2.原生查询操作的写操作:insert/update/delete,execute()

public function demo2()
{
$sql = "UPDATE `admin` SET `status`=:status WHERE `id`=:id ";
$map = ['id' => 1, 'status' => 0];
$res = Db::execute($sql, $map);
return '成功更新了'.$res.'条记录';
}

数据表中 id=1 的 status从1变为0


3.查询构造器

① find() : 返回满足条件的第一条记录,单条记录;无返回null

//table():设置数据表
//field():设置查询字段列表
public function demo3()
{
$res = Db::table('admin')
->field('id, userName, phone')
->find(2);//支持将主键作为参数:WHERE `id` = 2
dump($res);
}

②select() : 返回满足条件的多条记录

public function demo4()
{
$res = Db::table('admin')
->field('id, userName, phone')
//注:select(2, 3)只返回第一条;select([2, 3])应放入数组中
->select();//同上
dump($res);
}

4 . where()函数:可以根据其他字段查询

设置查询条件 主要类型:字符串,表达式,数组

(1)字符串

public function demo5()
{
$res = Db::table('admin')
->field('id, userName, phone')//field()仅返回对应字段 //1.字符串
->where('status > 0')
->select();
dump($res);
}

(2)表达式

public function demo5()
{
$res = Db::table('admin')
->field('id, userName, phone')//field()仅返回对应字段 //2.表达式:推荐
->where('id','between',[1,3])//参数格式:字段,操作符,值
->select();
dump($res);
}

(3)数组

①关联数组:等值查询,AND

public function demo5()
{
$res = Db::table('admin')
->field('id, userName, phone')//field()仅返回对应字段 // ①关联数组
->where(['id' => 1, 'phone' => 123])
->select();
dump($res);
}

打印sql语句看一下(在where()和select()中间插入下面代码)

->fetchSql(true)

②索引数组:批量查询

public function demo5()
{
$res = Db::table('admin')
->field('id, userName, phone')//field()仅返回对应字段 //②索引数组
->where([
// ‘0=>’ 索引值可以忽略,默认值
0 => ['id','between',[1,3]],
1 => ['status','>',0]
]) ->select();
dump($res);
}

5.order(),limit()函数

①单字段排序

//order(),limit()
public function demo6()
{
$res = Db::table('admin')
->field('id, userName, phone') //单字段排序
->order('id', 'desc')//默认升序asc,desc:降序
->limit(2,2)//从第2行开始的2条数据,常用于分页查询 ->select();
dump($res);
}

②多字段排序,用数组参数

讲单字段排序中order()一行改为以下代码即可

->order(['id'=>'asc', 'phone'=>'desc'])

Thinkphp6框架学习:有关数据库的基本操作的更多相关文章

  1. Android 学习笔记之AndBase框架学习(五) 数据库ORM..注解,数据库对象映射...

    PS:好久没写博客了... 学习内容: 1.DAO介绍,通用DAO的简单调度过程.. 2.数据库映射关系... 3.使用泛型+反射+注解封装通用DAO.. 4.使用AndBase框架实现对DAO的调用 ...

  2. Thinkphp6框架学习:($this->error()undefined)Call to undefined method app\index\controller\Admin::error()

    最近在使用Thinkphp6框架的时候,想做一个初始化来验证登录状态. 当没有Session::get(‘adminUid’)的时候就应该跳转到admin\adminLogin的方法中,和以前Tp5的 ...

  3. spring框架学习之--数据库操作增删改查

    基于spring的NamedParameterJdbcTemplate操作数据库 首先在 resources 文件夹下添加数据库配置文件jdbc.properties 配置常用的数据库信息 consu ...

  4. ThinkPhp框架对“数据库”的基本操作

    框架有时会用到数据库的内容,在"ThinkPhp框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下. 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是 ...

  5. TP框架对数据库的基本操作

    数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作,一步步的讲述一下框架对数据库的操作 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找 ...

  6. 大数据学习day26----hive01----1hive的简介 2 hive的安装(hive的两种连接方式,后台启动,标准输出,错误输出)3. 数据库的基本操作 4. 建表(内部表和外部表的创建以及应用场景,数据导入,学生、分数sql练习)5.分区表 6加载数据的方式

    1. hive的简介(具体见文档) Hive是分析处理结构化数据的工具   本质:将hive sql转化成MapReduce程序或者spark程序 Hive处理的数据一般存储在HDFS上,其分析数据底 ...

  7. ORM数据库框架 SQLite 常用数据库框架比较 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. Hadoop学习笔记—18.Sqoop框架学习

    一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...

  9. MySQL(一) 数据表数据库的基本操作

    序言 这类文章,记录我看<MySQL5.6从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...

随机推荐

  1. 为什么选择B+树作为数据库索引结构?

    背景 首先,来谈谈B树.为什么要使用B树?我们需要明白以下两个事实: [事实1] 不同容量的存储器,访问速度差异悬殊.以磁盘和内存为例,访问磁盘的时间大概是ms级的,访问内存的时间大概是ns级的.有个 ...

  2. pip升级命令

    pip升级命令 $ python -m pip install --upgrade pip

  3. MQTT的学习之Mosquitto安装和使用

    Mosquitto是一个实现了MQTT3.1协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为我们提供了非常棒的轻量级数据交换的解决方案.本文的主旨在于记录M ...

  4. Springboot + Stopping service [Tomcat]+ Process finished with exit code 0

    在Springboot 的版本为: <version>1.5.10.RELEASE</version> 原因:代码中有非法格式的结构,及代码写错啦,例如: <result ...

  5. iNeuOS 物联网云操作系统2.0发布,集成设备容器、视图建模、机器学习三大模块

    目       录 1.      概述... 2 2.      使命及目标... 3 3.      系统框架... 4 4.      设备容器(iNeuKernel)... 4 5.      ...

  6. 持续集成高级篇之Jekins参数化构建(二)

    系列目录 上一节我们讲解了如何使用bat脚本或者powershell脚本自身的机制来达到参数化构建的目的,这在一定程序上增加了灵活性,然而缺点也相当明显:它只能适应一些相对比较固定的参数传入(比如像上 ...

  7. d3.js制作蜂巢图表带动画效果

    以上是效果图,本图表使用d3.js v4制作.图表主要功能是在六边形格子中显示数据,点击底部图标可以切换指定格子高亮显示,图表可以随浏览器任意缩放. 1.图表的主体结构是由正六边形组成,使用d3生成六 ...

  8. php中++ --运算

    $x = 5; echo $x; echo "---"; // echo ++$x + $x; //6+6=12 $x=6 // echo ++$x + 5; //6+5=12 $ ...

  9. Netty源码分析 (一)----- NioEventLoopGroup

    提到Netty首当其冲被提起的肯定是支持它承受高并发的线程模型,说到线程模型就不得不提到NioEventLoopGroup这个线程池,接下来进入正题. 线程模型 首先来看一段Netty的使用示例 pa ...

  10. Java8 日期 API 业务使用

    最近在做账单结算业务,需要根据客户选择的结算方式来推算下一次结算日期以及该次结算日期段. 推算日期这样的业务直男君以前就写过,只不过使用的是熟悉的 java.util.date 和 java.util ...