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从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...
随机推荐
- 简洁实用Socket框架DotNettySocket
目录 简介 产生背景 使用方式 TcpSocket WebSocket UdpSocket 结尾 简介 DotNettySocket是一个.NET跨平台Socket框架(支持.NET4.5+及.NET ...
- mysql复制那点事(2)-binlog组提交源码分析和实现
mysql复制那点事(2)-binlog组提交源码分析和实现 [TOC] 0. 参考文献 序号 文献 1 MySQL 5.7 MTS源码分析 2 MySQL 组提交 3 MySQL Redo/Binl ...
- HTML发展历程
HTML是超文本标记语言的缩写,不同于C或JAVA等编程语言,HTML由标签组成.通过标签可以在网页中插入文字.图片.链接.音频.视频等元素,进而描述网页.和Windows一样,随着技术的发展,HTM ...
- print,cat打印格式及字符串引号格式,去掉字符串空格 in R
print 函数的打印格式: ##no quote print out > x <- letters[1:5] > print(x,quote=F,);print(x,quote=T ...
- js-获取屏幕的中各种宽高
网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...
- c排序
#pragma once//如果写头文件 放置头文件重复包含 #include<stdio.h> //定义类型 结构体类型定义 //宏定义 #define //函数申明 void prin ...
- 在linux系统中配置NVMe over TCP
1. 准备环境 1.1 准备linux系统 要求的linux系统可以是运行在物理机上,也可以是虚拟机上: 建议有个linux系统,一个做host,一个做target,如果资源紧张也可以把host和ta ...
- C#中的扩展方法(向已有类添加方法,但无需创建新的派生类型)
C#中的扩展方法 扩展方法使你能够向现有类型"添加"方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样 ...
- Azure Devops: COPY failed: stat /var/lib/docker/tmp/docker-builder268095359/xxxxxxx.csproj no such file or directory
在Azure Devops中部署docker镜像时, 出现COPY failed: stat /var/lib/docker/tmp/docker-builder268095359/xxxxxxx. ...
- MapDB使用入门
背景 MapDB官网:http://www.mapdb.org 官方翻译之后的话:MapDB基于堆外存储.磁盘存储提供了Java的Maps.Sets.Lists.Queues等功能.它混合了Java集 ...