Thinkphp6框架学习:有关数据库的基本操作
时间:2019-09-17
本文章向大家介绍Thinkphp6框架学习:有关数据库的基本操作,主要包括Thinkphp6框架学习:有关数据库的基本操作使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
最近Thinkphp6框架出来了,Mysql 8.0也出来了,php版本也升级到了7.4(这里php使用的是php7.3)
为了赶上时代的潮流,连ide(phpstorm)也升级到了2019.2的版本
以下是本机所使用的环境及版本(phpstudy也是新ui 8.0)
对于数据库的配置在框架中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)
这就是关联数组的等值查询(AND)
结果:
②索引数组:批量查询
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'])
原文地址:https://www.cnblogs.com/yi2105/p/11532215.html
- Hadoop查看所有JOB以及如何Kill指定用户的所有Job
- Java基础-23(01)总结多线程,线程实现Runnable接口,线程名字获取和设置,线程控制,线程安全,同步线程
- ORA-01427问题的分析和解决(r6笔记第51天)
- 从编程实现角度学习 Faster R-CNN(附极简实现)
- Java基础-23(02)总结多线程,线程实现Runnable接口,线程名字获取和设置,线程控制,线程安全,同步线程
- 8 个最好的 Java RESTful 框架
- 【C++基础】C++11 lambda 表达式解析
- 大量redo生成的问题原因及改进(r6笔记第50天)
- Java基础-22总结登录注册IO版,数据操作流,内存操作流,打印流,标准输入输出流,
- YOLO,一种简易快捷的目标检测算法
- Java基础-22总结转换流,随机访问流,合并流,序列化流,Properties
- openshift镜像构建
- 关于数据库无法登录的问题反思(r6笔记第49天)
- SQL中distinct的用法
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC