ThinkPHP6之数据库操作上
ThinkPHP6之数据库操作上
- 前言
- 1. 数据库配置
- 2. 数据库操作
- 1. 查询操作
- 2. 插入操作
- 3. 修改
- 4. 删除
- 5. 其他
- 3.数据集
- 总结
前言
注意,tp6在进行语法学习的时候都是在app/index.php中写代码的,代码写在index函数下面,而且
tp6自带的文件都是由自动加载器的,不需要包含autoload.php文件
1. 数据库配置
要对数据库进行操作,要修改两个地方,一个数.env文件,一个是config/database.php文件
- config/database.php
'connections' => ['mysql' => [ // 代表连接的一个数据库// 数据库类型'type' => env('database.type', 'mysql'),// 服务器地址'hostname' => env('database.hostname', '127.0.0.1'),// 数据库名'database' => env('database.database', 'cr'),// 用户名'username' => env('database.username', 'root'),// 密码'password' => env('database.password', '901026'),// 端口'hostport' => env('database.hostport', '3306'),// 数据库连接参数'params' => [],// 数据库编码默认采用utf8'charset' => env('database.charset', 'utf8'),// 数据库表前缀 配置后只有写数据库后面'prefix' => env('database.prefix', ''),// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)'deploy' => 0,// 数据库读写是否分离 主从式有效'rw_separate' => false,// 读写分离后 主服务器数量'master_num' => 1,// 指定从服务器序号'slave_no' => '',// 是否严格检查字段是否存在'fields_strict' => true,// 是否需要断线重连'break_reconnect' => false,// 监听SQL'trigger_sql' => env('app_debug', true),// 开启字段缓存'fields_cache' => false,],],
connections里面的一个子元素代表连接的一个数据库,要使用多个数据库,要添加多个数据库对象,写
prefix
之后就只需要写数据表后面的字段了
- config/env
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = cr
USERNAME = root
PASSWORD = 901026
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true
注意和config/database.php对应上就可以了
2. 数据库操作
创建数据库
create database cr;
use cr;
insert into phpcn_user values (1, '欧阳克'),(2, '朱'),(3,'asd'),(4,'asde'),(5,'rts');
在写操作数据库语句之前写
use think\facade\Db;
1. 查询操作
find():通过主键查找,find方法查询结果不存在,返回 null,否则返回结果数组
where():查询的条件
field(), column():查询某一列数据
value() :通过值查找,查询某段的值
如上都是查询一条数据,一列数据,或者是一个数据
- select() :查询好多条数据,和toArray()一起使用
$result = Db::table('phpcn_user')->column('id');printf('<pre>%s</pre>',print_r($result,true));$result = Db::table('phpcn_user')->where('id','>','2')->value('name');printf('<pre>%s</pre>', print_r($result, true));$result = Db::table('phpcn_user')->where('id', '3')->value('name');printf('<pre>%s</pre>', print_r($result, true));print('-----------------');$result = Db::table('phpcn_user')->where('id','>=','2')->select()->toArray();printf('<pre>%s</pre>', print_r($result, true));
2. 插入操作
- insert($data) $data为关联数组,通常通过
- insertAll($data) :添加多条数据
- insertGetId($data) :添加数据并且获取添加数据的主键
$data = ['id'=>11,'name'=>'zxasdc'];$result = DB::table('phpcn_user')->insert($data);echo $result;$data = ['id'=>11,'name'=>'zxasdc'];$result = DB::table('phpcn_user')->insertGetId($data);echo $result;$data = [['id'=>7,'name'=>'dfg'],['id' => 8,'name' => 'df8g']];$result = DB::table('phpcn_user')->insertAll($data);echo $result;
插入操作,插入的都是关联数组
3. 修改
- update(修改后的值) + where(修改哪一个)
- updata($data) $data为关联数组
- inc():自增 dec():自减
$result = Db::table('phpcn_user')->where('id',3)->update(['name'=>'ykk']);
4. 删除
- delete()
- useSoftDelete()
$result = Db::table('phpcn_user')->where('id',5)->delete();
5. 其他
- save($data) : $data是关联数组,save方法统一写入数据,自动判断是新增还是更新数据(以写入数据中是否存在主键数据为依据)
- query() :方法用于执行 MySql 查询操作
- execute() : 方法用于执行 MySql 新增和修改操作
2和3都是直接操作数据库的
$result = Db::query("select * from `phpcn_user` where `id` > 3");print_r($result);$result = Db::execute("insert into `phpcn_user` values (11, 'asd')");print_r($result);
3.数据集
- toArray()
- isEmpty()
总结
数据库操作前一定要加上
use think\facade\Db;
ThinkPHP6之数据库操作上相关推荐
- ThinkPHP6之数据库操作下
ThinkPHP6之数据库操作下 前言 一,查询表达式 1.1 where 1.2table和name 1.3field 1.4limit 1.5page 1.6 order 二, 聚合查询 三,分页 ...
- Node.js SQL数据库操作 (上)(操作MySQL数据库及 数据库连接池)
文章目录 Node.js MySQL驱动 操作 MySQL 数据库 连接 MySQL 数据库 增删改查操作 防止 SQL 注入攻击 数据库连接池操作 Node.js MySQL驱动 Node.js的原 ...
- thinkphp的数据库操作(上)
如果想了解更多相关知识,可以前往我的个人博客看看:eyes++的个人空间 一:连接数据库与模型初探 ThinkPHP 采用内置抽象层将不同的数据库操作进行封装处理,数据抽象层基于 PDO 模式,无须针 ...
- 使用Memcache缓存mysql数据库操作的原理和缓存过程浅析
1.首先明确是不是一定要上缓存,当前架构的瓶颈在哪里,若瓶颈真是数据库操作上,再继续往下看. 2.明确memcached和redis的区别,到底要使用哪个.前者终究是个缓存,不可能永久保存数据(LRU ...
- .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...
ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...
- ThinkPHP6项目基操(20.实战部分 数据库操作返回值总结)
数据库操作返回值总结 0. 前言 1. Db类操作数据库 1.1 新增 1.2 更新 1.3 删除 1.3.1 单条删除 1.3.2 批量删除 1.4 查询 1.4.1 单笔记录 1.4.2 多笔记录 ...
- 红橙Darren视频笔记 缓存方案 缓存到数据库(数据库操作) 上
1.涉及知识 反射 工厂模式 单例 关于工厂模式:抽象工厂用于创建相对复杂的对象,适用于对象包含很多零件或生产大批对象的情景 关于泛型: 泛型方法 public class Test {public ...
- [收藏]ASP数据库操作类(上)
1<% 2Class dbClass 3'---------------------------------------------------------------------- ...
- 便捷,轻巧的Groovy数据库操作
本文主要介绍Groovy对数据的CRUD操作,熟悉groovy.sql包,测试使用的数据库是H2. 1.数据库连接配置 //数据库连接配置 def db = [url:'jdbc:h2:mem:gro ...
最新文章
- 专科电子信息工程不学c语言,高中数学物理都不是很好 想报电子信息工程专业(专科)能行么?...
- 2018年人工智能将赋能所有行业,未来市场将超过400亿美元
- 一个典型的后台软件系统的设计复盘——(二)如何id一个事物
- php通过ip查询经纬度,php 获取客户端IP地址经纬度所在城市
- 数据结构之通过C++来实现一个队列
- java定义dll文件位置,生成网站时如何设置固定的dll文件名?-Java架构师必看
- CodeForces - 1311F Moving Points(线段树+离散化)
- 问题步骤记录器——“懒教师”的好帮手
- 入门 IT 行业,该具备哪些技能?
- t3 深入Tornado
- spring事务介绍 1
- 用java实现学生管理系统
- 魅族POP2s真无线耳机正式发布:售价299元!
- Linux常用基本命令及应用技巧1
- Python 字符串 循环
- 使用 Docker 部署的微服务在 Nacos 里注册成内网地址 导致无法微服务间互相调用的解决方案...
- html的container怎么居中,html – 如何居中对齐flexbox容器?
- 淘宝商品上传API接口
- TensorFlow——decay设置
- PTA 单链表(流浪狗收养所)
热门文章
- 无人驾驶频频碰壁,AI产品落地之路为何走的如此糟心?
- 转贴:人活着到底为了啥?
- 【HIT-CN/不定期更新】计网NFAQ
- FPGA:逻辑代数的基本公式和规则
- 爬取美女图片【绝对福利】
- 潭州学院html学习(day01)
- Android系统的编舞者Choreographer
- 中国内地所有必胜客餐厅将停用塑料吸管;开元旗下开业酒店突破300家 | 美通企业日报...
- 服务器维护 志愿填报时间顺延,因系统维护 西藏高考志愿填报截止时间顺延两日...
- C++实现别踩白块儿(双人版)