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. 查询操作

  1. find():通过主键查找,find方法查询结果不存在,返回 null,否则返回结果数组

  2. where():查询的条件

  3. field(), column():查询某一列数据

  4. value() :通过值查找,查询某段的值

如上都是查询一条数据,一列数据,或者是一个数据

  1. 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. 插入操作

  1. insert($data) $data为关联数组,通常通过
  2. insertAll($data) :添加多条数据
  3. 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. 修改

  1. update(修改后的值) + where(修改哪一个)
  2. updata($data) $data为关联数组
  3. inc():自增 dec():自减
 $result = Db::table('phpcn_user')->where('id',3)->update(['name'=>'ykk']);

4. 删除

  1. delete()
  2. useSoftDelete()
$result = Db::table('phpcn_user')->where('id',5)->delete();

5. 其他

  1. save($data) : $data是关联数组,save方法统一写入数据,自动判断是新增还是更新数据(以写入数据中是否存在主键数据为依据)
  2. query() :方法用于执行 MySql 查询操作
  3. 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.数据集

  1. toArray()
  2. isEmpty()

总结

数据库操作前一定要加上 use think\facade\Db;

ThinkPHP6之数据库操作上相关推荐

  1. ThinkPHP6之数据库操作下

    ThinkPHP6之数据库操作下 前言 一,查询表达式 1.1 where 1.2table和name 1.3field 1.4limit 1.5page 1.6 order 二, 聚合查询 三,分页 ...

  2. Node.js SQL数据库操作 (上)(操作MySQL数据库及 数据库连接池)

    文章目录 Node.js MySQL驱动 操作 MySQL 数据库 连接 MySQL 数据库 增删改查操作 防止 SQL 注入攻击 数据库连接池操作 Node.js MySQL驱动 Node.js的原 ...

  3. thinkphp的数据库操作(上)

    如果想了解更多相关知识,可以前往我的个人博客看看:eyes++的个人空间 一:连接数据库与模型初探 ThinkPHP 采用内置抽象层将不同的数据库操作进行封装处理,数据抽象层基于 PDO 模式,无须针 ...

  4. 使用Memcache缓存mysql数据库操作的原理和缓存过程浅析

    1.首先明确是不是一定要上缓存,当前架构的瓶颈在哪里,若瓶颈真是数据库操作上,再继续往下看. 2.明确memcached和redis的区别,到底要使用哪个.前者终究是个缓存,不可能永久保存数据(LRU ...

  5. .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...

    ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...

  6. 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 多笔记录 ...

  7. 红橙Darren视频笔记 缓存方案 缓存到数据库(数据库操作) 上

    1.涉及知识 反射 工厂模式 单例 关于工厂模式:抽象工厂用于创建相对复杂的对象,适用于对象包含很多零件或生产大批对象的情景 关于泛型: 泛型方法 public class Test {public ...

  8. [收藏]ASP数据库操作类(上)

      1<%   2Class dbClass   3'---------------------------------------------------------------------- ...

  9. 便捷,轻巧的Groovy数据库操作

    本文主要介绍Groovy对数据的CRUD操作,熟悉groovy.sql包,测试使用的数据库是H2. 1.数据库连接配置 //数据库连接配置 def db = [url:'jdbc:h2:mem:gro ...

最新文章

  1. 专科电子信息工程不学c语言,高中数学物理都不是很好 想报电子信息工程专业(专科)能行么?...
  2. 2018年人工智能将赋能所有行业,未来市场将超过400亿美元
  3. 一个典型的后台软件系统的设计复盘——(二)如何id一个事物
  4. php通过ip查询经纬度,php 获取客户端IP地址经纬度所在城市
  5. 数据结构之通过C++来实现一个队列
  6. java定义dll文件位置,生成网站时如何设置固定的dll文件名?-Java架构师必看
  7. CodeForces - 1311F Moving Points(线段树+离散化)
  8. 问题步骤记录器——“懒教师”的好帮手
  9. 入门 IT 行业,该具备哪些技能?
  10. t3 深入Tornado
  11. spring事务介绍 1
  12. 用java实现学生管理系统
  13. 魅族POP2s真无线耳机正式发布:售价299元!
  14. Linux常用基本命令及应用技巧1
  15. Python 字符串 循环
  16. 使用 Docker 部署的微服务在 Nacos 里注册成内网地址 导致无法微服务间互相调用的解决方案...
  17. html的container怎么居中,html – 如何居中对齐flexbox容器?
  18. 淘宝商品上传API接口
  19. TensorFlow——decay设置
  20. PTA 单链表(流浪狗收养所)

热门文章

  1. 无人驾驶频频碰壁,AI产品落地之路为何走的如此糟心?
  2. 转贴:人活着到底为了啥?
  3. 【HIT-CN/不定期更新】计网NFAQ
  4. FPGA:逻辑代数的基本公式和规则
  5. 爬取美女图片【绝对福利】
  6. 潭州学院html学习(day01)
  7. Android系统的编舞者Choreographer
  8. 中国内地所有必胜客餐厅将停用塑料吸管;开元旗下开业酒店突破300家 | 美通企业日报...
  9. 服务器维护 志愿填报时间顺延,因系统维护 西藏高考志愿填报截止时间顺延两日...
  10. C++实现别踩白块儿(双人版)