ThinkPHP6之数据库操作上

这篇具有很好参考价值的文章主要介绍了ThinkPHP6之数据库操作上。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

注意,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,
        ],
    ],

ThinkPHP6之数据库操作上

connections里面的一个子元素代表连接的一个数据库,要使用多个数据库,要添加多个数据库对象,写prefix之后就只需要写数据表后面的字段了

  • config/env
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = cr
USERNAME = root
PASSWORD = 901026
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true

ThinkPHP6之数据库操作上

注意和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;文章来源地址https://www.toymoban.com/news/detail-427602.html

到了这里,关于ThinkPHP6之数据库操作上的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • thinkphp学习06-连接数据库与模型初探

    插入数据 修改.env数据库配置 测试环境下是可以使用的,但是到了线上建议配置到config下database.php 可以通过删除改变.env 的配置,或删除.env 来验证 database 的执行优先级,经过验证可知:.envdatabase.php 新建DataTest.php connections 配置数据库连接信息,可以是多个数据库,便于切换,

    2024年01月16日
    浏览(37)
  • thinkphp5框架的model支持多地区数据库切换

    一般情况下,都是在model中指定一个数据库连接参数即可。但某些情况下,相同的库表会在不同地区都有部署,这个时候需要按地区进行切换(只有一个model情况下)。 Model层代码 使用A地区的数据库: $model = new A(); 使用B地区的数据库: $model = new B(); 需要更改地方:config.ph

    2024年02月12日
    浏览(37)
  • thinkphp:数据库查询,嵌套别的表的查询(别的表做子查询)

    从  vendors  表中选择记录。 在  vendors  表中,筛选出具有满足以下条件的  vendor_code  值: 对应的采购订单(在  po_headers_all  表中)存在未完全接收的采购行(在  po_lines_all  表中)。 相应的采购订单状态为 \\\"已签核\\\"。 采购行的数量大于已接收数量。 查询结果按照  v

    2024年02月10日
    浏览(38)
  • 【ThinkPHP6系列学习-1】下载并部署ThinkPHP6

    在指定目录(www目录)下打开cmd,使用composer下载thinkphp6,命令后面的thinkphp6就是下载的目录名,可以随意修改。 下载后,查看目录结构,tp6的目录结构和tp5不同,默认是单应用(只有一个模块),如果需要多应用,需要开启多应用模式,后面文章再讲。 主要用到的目录有

    2024年02月05日
    浏览(59)
  • thinkphp6 入门教程合集(更新中) thinkphp6 入门(1)--安装、路由规则、多应用模式

    thinkphp6 入门(1)--安装、路由规则、多应用模式_软件工程小施同学的博客-CSDN博客 thinkphp6 入门(2)--视图、渲染html页面、赋值_软件工程小施同学的博客-CSDN博客 thinkphp6 入门(3)--获取GET、POST请求的参数值_thinkphp获取get传值_软件工程小施同学的博客-CSDN博客 thinkphp6 入门(

    2024年02月09日
    浏览(60)
  • 数据库内日期类型数据大于小于条件查找注意事项

    只传date格式的日期取查datetime的字段的话默认是 00:00:00 日期类型字符串需要使用 ’ ’ 单引号括住 使用大于小于条件查询某一天的日期数据 前后判断条件不能是同一天 一个例子 数据库内数据: 查询2023-08-14之后的数据: 查询2023-08-14之前的数据: 查询2023-08-14一天内的数据

    2024年02月12日
    浏览(41)
  • thinkphp6和thinkphp5有什么区别

    Thinkphp6.0完全开发手册 采用PHP7强类型(严格模式) tp5 环境要求PHP = 5.4.0 ThinkPHP6.0的环境要求 PHP = 7.2.5 6.0版本开始,必须通过Composer方式安装和更新,所以你无法通过Git下载安装。 支持更多的PSR规范 V6.0.10版本开始 支持 psr7 response 多应用支持 tp5默认使用多应用模式部署 tp6 安

    2024年02月06日
    浏览(58)
  • thinkPHP6接入workman

    上篇介绍了workman实现websocket功能(链接:https://blog.csdn.net/weixin_38155824/article/details/128952037) 后传:解决workman部署到Linux环境无法启动和连接的问题(https://blog.csdn.net/weixin_38155824/article/details/129004050) 这篇就介绍如何在thinkPHP6项目中接入workman。 查看TP6手册:命令行=自定义命

    2024年02月15日
    浏览(73)
  • thinkphp6-配置设置与获取,Thinkphp6自定义配置文件以及调用(config文件夹下的配置)

    环境变量 设置环境变量 /.env [DATABASE] USERNAME = root PASSWORD = 123456 获取环境变量 app/controller/Index.php 访问测试 http://codeit.org.cn/index {“username”:“root”,“password”:“123456”} 1.在thinkphpconfig下新建一个test.php配置文件 .test.php文件内容 调用test.php配置文件 配置 配置设置 config/app.

    2024年02月13日
    浏览(51)
  • ThinkPHP6中使用GatewayWorker

    首先是先安装 下载demo 服务器开通TCP端口 8282 、 1238 将 ApplicationsYourApp 目录随便放ThinkPHP6的哪个位置,我这里放在了 appgatewayws 目录中 配置 composer.json 保存后执行 composer dumpautoload 更新 将 Events.php 、 start_businessworker.php 、 start_gateway.php 和 start_register.php 文件中的 require_once

    2024年02月22日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包