Thinkphp6框架学习:有关数据库的基本操作
本文将提到:
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框架学习:有关数据库的基本操作的更多相关文章
- Android 学习笔记之AndBase框架学习(五) 数据库ORM..注解,数据库对象映射...
PS:好久没写博客了... 学习内容: 1.DAO介绍,通用DAO的简单调度过程.. 2.数据库映射关系... 3.使用泛型+反射+注解封装通用DAO.. 4.使用AndBase框架实现对DAO的调用 ...
- Thinkphp6框架学习:($this->error()undefined)Call to undefined method app\index\controller\Admin::error()
最近在使用Thinkphp6框架的时候,想做一个初始化来验证登录状态. 当没有Session::get(‘adminUid’)的时候就应该跳转到admin\adminLogin的方法中,和以前Tp5的 ...
- spring框架学习之--数据库操作增删改查
基于spring的NamedParameterJdbcTemplate操作数据库 首先在 resources 文件夹下添加数据库配置文件jdbc.properties 配置常用的数据库信息 consu ...
- ThinkPhp框架对“数据库”的基本操作
框架有时会用到数据库的内容,在"ThinkPhp框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下. 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是 ...
- TP框架对数据库的基本操作
数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作,一步步的讲述一下框架对数据库的操作 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找 ...
- 大数据学习day26----hive01----1hive的简介 2 hive的安装(hive的两种连接方式,后台启动,标准输出,错误输出)3. 数据库的基本操作 4. 建表(内部表和外部表的创建以及应用场景,数据导入,学生、分数sql练习)5.分区表 6加载数据的方式
1. hive的简介(具体见文档) Hive是分析处理结构化数据的工具 本质:将hive sql转化成MapReduce程序或者spark程序 Hive处理的数据一般存储在HDFS上,其分析数据底 ...
- ORM数据库框架 SQLite 常用数据库框架比较 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Hadoop学习笔记—18.Sqoop框架学习
一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...
- MySQL(一) 数据表数据库的基本操作
序言 这类文章,记录我看<MySQL5.6从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...
随机推荐
- 【Aizu - 2249】Road Construction(最短路 Dijkstra算法)
Road Construction Descriptions Mercer国王是ACM王国的王者.他的王国里有一个首都和一些城市.令人惊讶的是,现在王国没有道路.最近,他计划在首都和城市之间修建道路, ...
- webgl(three.js)实现室内定位,楼宇bim、实时定位三维可视化解决方案
(写在前面,谈谈物联网展会)上次深圳会展中心举行物联网展会,到了展会一看,80%以上的物联网应用都是在搞RFID,室内定位,我一度怀疑物联网落地方案的方向局限性与市场导向,后来多方面了解才明白,展会上 ...
- 前端项目优化 -Web 开发常用优化方案、Vue & React 项目优化
github github-myBlob 从输入URL到页面加载完成的整个过程 首先做 DNS 查询,如果这一步做了智能 DNS 解析的话,会提供访问速度最快的 IP 地址回来 接下来是 TCP 握手 ...
- 试试 python-dotenv,避免敏感信息被硬编码到代码中
我们开发的每个系统都离不开配置信息,例如数据库密码.Redis密码.邮件配置.各种第三方配置信息,这些信息都非常敏感,一旦泄露出去后果非常严重,被泄露的原因一般是程序员将配置信息和代码混在一起导致的. ...
- Java基础部分-面试题
1.java中的数据类型有哪些? 数据类型主要分为基本数据类型和引用数据类型. 基本数据类型主要包括: 整数类型: byte.short.int.long 浮点数:float.double 布尔类型: ...
- 三维动画形变算法(Laplacian-Based Deformation)
网格上顶点的Laplace坐标(均匀权重)定义为:,其中di为顶点vi的1环邻域顶点数. 网格Laplace坐标可以用矩阵形式表示:△=LV,其中,那么根据网格的Laplace坐标通过求解稀疏线性方程 ...
- Sqoop数据迁移工具的使用
文章作者:foochane 原文链接:https://foochane.cn/article/2019063001.html Sqoop数据迁移工具的使用 sqoop简单介绍 sqoop数据到HDF ...
- 【2017cs231n】:课程笔记-第2讲:图像分类
[2017cs231n]:课程笔记-第2讲:图像分类 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.n ...
- 大转盘(CocosCreator)
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 1.在场景中搭建大转盘场景,假设 奖项有n项,对应的每项旋转角度如下: 第几项 需要旋转的角度 0 360/n/2 1 360/ ...
- Codeforces 1004D
题意略. 思路: 有两个点要注意一下: 1.这个菱形矩阵是8对称的,也即可以是沿45°对角线对称. 2.菱形矩阵上的数字表明了这个点到中心0点的距离,这对于确定位置有帮助. 这个题目简直刷新人生观,这 ...