04 tp6 的查数据 find、select、findOrEmpty、findOrFail、toArray、selectOrFail、value、column《ThinkPHP6 入门到电商实战》

文章目录(更新中…)

01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》
02 控制器《ThinkPHP6 入门到电商实战》
03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》
04 tp6 的查数据《ThinkPHP6 入门到电商实战》
05 tp6 的数据添加《ThinkPHP6 入门到电商实战》
06 tp6 的数据更新(改)及删除 《ThinkPHP6 入门到电商实战》
07查询表达式 及 page分页、order 排序《ThinkPHP6 入门到电商实战》
08 获取器 withAttr、多连缀、whereRaw、事务、数据集《ThinkPHP6 入门到电商实战》

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。

一、查数据的不同方法

1.1 table 方法 的单条数据查询

table 方法是查询数据的一种方法,在查询时需要指定数据库表名,并且可以指定是查找一条数据还是多条数据。

例如如下方式则是使用table查询一条数据(引用官方手册),其中的-> 所链接的操作被称为链式操作:

// table方法必须指定完整的数据表名
Db::table('think_user')->where('id', 1)->find();

1.1.1 table 的 find 操作

以上示例中 think_user 表示当前数据库的表名且表名必须完整,而后面所链接的 where 表示传入一个条件,在此处表示 id 值为 1 的数据,最后的 find 表示执行 find 操作。

此时我们查看数据库中的表:
在这里插入图片描述
在此我们查询一条 id 为 5 的数据,那么代码可以编写为:

Db::table('student')->where('id', 5)->find();

此时在index.php 控制器中增加一个 select 方法:

public function select(){//table find$res=Db::table('student')->where('id', 5)->find();dump($res);
}

最后使用 dump 输出结果,访问该方法后将会得到 null,当查询为空时则为null:
在这里插入图片描述

1.1.2 find 的 findOrEmpty、findOrFail 操作

若想在查询结果为 null 时返回空数据,那么可以使用 findOrEmpty 进行查询,例如如下代码:

public function select(){$res=Db::table('student')->where('id', 6)->findOrEmpty();dump($res);}

此时访问后结果如下:
在这里插入图片描述

若想在查询为空时返回异常,那么直接使用 findOrFail 查询即可:

public function select(){$res=Db::table('student')->where('id', 6)->findOrFail();dump($res);
}

此时访问后结果如下:
在这里插入图片描述

1.2 table 方法 的多条数据查询

在 1.1 中的示例均是单条数据查询,在这里咱们开始介绍多少数据的查询方式。

1.2.1 table 的 select 操作

在之前使用了find 查询单条数据,在这里咱们使用 select 查询多条数据,示例如下(示例来源官方手册):

Db::table('think_user')->where('status', 1)->select();

若此时我们需要查询数据表中身高为 170 的学生,那么此时表如下:
在这里插入图片描述
查询代码即可写成:

Db::table('student')->where('height', 170)->select();

那么此时 select 方法可以修改成:

public function select(){$res=Db::table('student')->where('height', 170)->select();dump($res);
}

此时结果如下:
在这里插入图片描述
由于此时所查询的是数据集,并不是单挑数据,所以此时的结果为多条数据。

1.2.2 select 的 selectOrFail、toArray 操作

find 有 finOrFail 操作,那么同样的 select 也有此操作,当查询数据集时若返回为空想要抛出异常,那么就使用 selectOrFail,此时代码如下:

$res=Db::table('student')->where('height', 170)->selectOrFail();

过多举例不做演示了,因为效果跟 find 的对应方法类似,此时演示 toArray 方法;toArray 方法表示将数据集转换为数组。有些同学可能疑惑,本身查询到的数据不是数组嘛?其实本身查询到的数据并不是数组,而是 Collection :

在这里插入图片描述
此时转为数组直接使用 toArray方法即可:

$res=Db::table('student')->where('height', 170)->select()->toArray();

结果如下:

在这里插入图片描述

1.3 value 指定返回值

在查询一条数据时,可以使用 value 指定返回值内容,例如如下代码:

public function select(){$res=Db::table('student')->where('id', 5)->value('name');dump($res);
}

其中 value 表示指定返回值的内容,那么此时查询到数据后,返回结果如下:
在这里插入图片描述
若数据为空则返回 null:

在这里插入图片描述

1.3 column 指定返回值

在单条数据时我们可以使用 value 返回指定内容,但是在多条数据时怎么办呢?此时可以使用 column 指定多条数据返回值的内容,例如如下代码:

public function select(){$res=Db::table('student')->where('height', 170)->column('name','nickname');dump($res);
}

此时再 column 中指定了返回的内容列,那么此时访问后结果如下:
在这里插入图片描述

闭包

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

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

相关文章

学生信息管理系统小结

ASP.NETAccess 一、登入部分 主界面 Fm new 主界面(); string s1 "ProviderMicrosoft.Jet.OLEDB.4.0;Data Sourcestudent.mdb"; string s2 "select*from 登录信息表 where 用户名" this.ttbName.Text " and 密码 "…

ArcGIS实验教程——实验三十:地图注记与标注(标注转注记)用法案例详解

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据)》 实验目录 一、实验描述二、地图标注1. 标注工具2. 标注属性默认设置3. 标注分类4. 多属性字段标注5. 标注转换6. 显示地图提示三、地图文档注记1. 注记组2. 创建地图文档注记3. 编辑地图文档注记一…

Android之实现多桌面图标app入口进入不同的页面,像2个独立运行的app一样,互不干扰。

1、需求 Android实现2个图标app入口进入不同的页面,一个图标点击进去主app页面,一个图标点击直接进入app页面的里面一个子页面,两个图标功能点击效果独立,不能乱跳,副桌面图标然后返回也是直接返回,不能先返回到本地,就是感觉像2个独立运行的app一样,互不干扰。 问题:…

启动obiee

启动obiee:1.启动数据库第一步:打开Oracle监听$ lsnrctl start第二步:使用sysdab角色登录sqlplussqlplus / as sysdba第三步:启动数据库SQL> startup 2.启动WebLogic:nohup /home/oracle/obiee11g/user_projects/domains/bifou…

ASP.NET中IsPostBack详解

1、IsPostBack介绍Page.IsPostBack是一个标志:当前请求是否第一次打开。 调用方法为:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者this.Page.IsPostBack,它们都等价。  1)当通过IE的地址栏等方式打开一个URL时是第一次打开, 当通…

05 tp6 的数据添加 助手函数、 save、insert、strict、replace、insertGetId、insertAll《ThinkPHP6 入门到电商实战》

文章目录(更新中…) 01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》 02 控制器《ThinkPHP6 入门到电商实战》 03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》 04 tp6 的查数据《ThinkPHP6 入门到电商实战》 05 tp6 的数据添…

利用bat修复office文件图标

如果电脑上安装了office,再安装wps,卸载wps后office文件图标会丢失。利用下边的代码,另存为bat文件,运行后可以快速修复图标问题。 rem 修复office文件默认图标.bat:: office图标文件路径,请根据自己电脑上的安装目录设…

VS2019如何创建C++项目?没有找到空项目(C++)完全解决方案

在使用Visual Studio 2019创建C++空项目时,没有空白项目可选,如下图所示,原因是在安装VS2019时没有选择C++对应的模块。本文讲解如何使用VS2019创建C++空项目,并使用C语言输出Hello World。 运行Visual Studio Installer,点击【修改】。 勾选【使用C++的桌面开发】,点击…

CentOS7.2 忘记root密码解决

CentOS 7 root密码的重置方式和CentOS 6完全不一样,以进入单用户模式修改root密码为例。 1.重启开机按esc,在第一行按e,进行编辑 2.编辑修改两处:ro改为rw,在LANGen_US.UFT-8后面添加init/bin/sh 3.按CtrlX重启,并修改…

Android之解决NestedScrollView嵌套RecyclerView部分手机返回到这个页面Recyclerview顶部,而不是页面NestedScrollView顶部

1、问题 NestedScrollView嵌套Recyclerview部分手机返回到这个页面Recyclerview顶部,而不是页面NestedScrollView顶部 部分布局大致如下 <androidx.core.widget.NestedScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent…

词法分析程序的功能

词法分析程序的功能其实就是对所输入的字段进行词法分析任务&#xff0c;对用户的源程序从左到右进行扫描&#xff0c;按照语言的词法规则识别各类单词&#xff0c;并产生相应单词的属性字&#xff0c;并随之显现出来&#xff0c;成为词法分析程序的功能 转载于:https://www.cn…

android:制作 Nine-Patch 图片

它是一种被特殊处理过的 png 图片&#xff0c;能够指定哪些区域可以被拉伸而 哪些区域不可以。 那么 Nine-Patch 图片到底有什么实际作用呢&#xff1f;我们还是通过一个例子来看一下吧。比如 说项目中有一张气泡样式的图片 message_left.png&#xff0c;如图 3.38 所示。 图 …

08 获取器 withAttr、多连缀、whereRaw、事务、数据集《ThinkPHP6 入门到电商实战》

知识点&#xff1a;获取器 withAttr、多连缀、whereRaw、事务、数据集 文章目录&#xff08;更新中…&#xff09; 01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》 02 控制器《ThinkPHP6 入门到电商实战》 03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商…

Chrome 双击关闭标签,新窗口打开新地址,一个插件搞定,安装方便,自带hosts

对&#xff0c;没错&#xff0c;就这它&#xff1a; 下载地址&#xff1a;https://shuax.com/project/greenchrome/ 一、插件安装 下载后&#xff0c;将下载的压缩包解压&#xff0c;根据自己Chreom浏览器是32位还是64位找到对应的 winmm.dll 文件&#xff0c;复制到Chome安装…

【ArcGIS遇上Python】从入门到精通系列之第二章:ArcGIS Python基本语法基础速递

Python的语法和其它编程语言的语法有所不同,编写Python程序之前需要对语法有所了解,才能编写规范的Python程序。本篇介绍Python标识符的同时,也讨论了Python变量的声明和赋值。通过本章的学习,将对python的数据类型、操作符、变量与赋值、代码块及缩进对齐、控制结构、函数…

C#中的闭包和意想不到的坑

虽然闭包主要是函数式编程的玩意儿&#xff0c;而C#的最主要特征是面向对象&#xff0c;但是利用委托或lambda表达式&#xff0c;C#也可以写出具有函数式编程风味的代码。同样的&#xff0c;使用委托或者lambda表达式&#xff0c;也可以在C#中使用闭包。根据WIKI的定义&#xf…

C语言试题五十八之请编写函数fun,:计算并输出下列多项式的值(sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n! )

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 请编写函数…

投票彰显电信合约机诺基亚Lumia 800C受热捧

49元可以做什么&#xff1f;与朋友吃顿便饭、买几包好烟&#xff0c;同时也能参加中国电信Lumia 800C的合约购机计划&#xff0c;其中选择49元是最低套餐&#xff0c;选择并预存600元话费&#xff0c;便可以以2999元购买Lumia 800C。 对于Lumia 800C&#xff0c;它可是新一代诺…

07查询表达式 及 page分页、order 排序《ThinkPHP6 入门到电商实战》

文章目录&#xff08;更新中…&#xff09; 01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》 02 控制器《ThinkPHP6 入门到电商实战》 03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》 04 tp6 的查数据《ThinkPHP6 入门到电商实战》 05 tp6 的数据添…

msSql 利用 xp_cmdshell 删除 创建目录

DECLARE DATABakPath VARCHAR(500) ND:\DataBak\ DECLARE RemoteComand VARCHAR(500)SET RemoteComand rd /s /qDATABakPath\dbname EXEC xp_cmdshell RemoteComand,no_output --删除文件夹,为了清理旧备份 SET RemoteComand mkdir DATABakPath\dbname EXEC xp_…