数据库Db操作

  • 一、数据库配置
  • 二、访问数据库
    • 1. 使用门面模式的Db类
    • 2. 使用容器方式
  • 三、数据库返回数据异常调试
    • 1. 打开APP_DEBUG
    • 2. 打印SQL语句
  • 四、增删查改CURD操作
    • 1. 新增
    • 2. 删除
    • 3. 更新

一、数据库配置

config目录下默认有个database.php文件,这里配置了默认的数据库信息:

<?phpreturn [// 默认使用的数据库连接配置'default'         => env('database.driver', 'mysql'),// 自定义时间查询规则'time_query_rule' => [],// 自动写入时间戳字段// true为自动识别类型 false关闭// 字符串则明确指定时间字段类型 支持 int timestamp datetime date'auto_timestamp'  => true,// 时间字段取出后的默认时间格式'datetime_format' => 'Y-m-d H:i:s',// 数据库连接配置信息'connections'     => ['mysql' => [// 数据库类型'type'            => env('database.type', 'mysql'),// 服务器地址'hostname'        => env('database.hostname', '127.0.0.1'),// 数据库名'database'        => env('database.database', ''),// 用户名'username'        => env('database.username', 'root'),// 密码'password'        => env('database.password', ''),// 端口'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,],// 更多的数据库配置信息],
];

可以看到这里默认是采用mysql数据库,数据库配置信息先去env环境配置文件里读取,如果没有,则使用默认的参数。
.env文件数据库配置(根据自己的数据库信息修改):

[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = tp6_test
USERNAME = root
PASSWORD = root
HOSTPORT = 3307
CHARSET = utf8
DEBUG = true

二、访问数据库

1. 使用门面模式的Db类

新建Data控制器,这里需要注意的是使用的facade\Db类,和TP5使用的think\Db不同:

<?phpnamespace app\controller;use app\BaseController;
use think\facade\Db;class Data extends BaseController
{public function index(){$result = Db::table("demo")->where("id",1)->find();dump($result);}
}

2. 使用容器方式

$result = app("db")->table("demo")->where("id",1)->find();

三、数据库返回数据异常调试

1. 打开APP_DEBUG

.env文件中设置

APP_DEBUG = true

然后浏览器访问页面会在右下角有个调试按钮,点开可以看到SQL语句,如果返回数据有问题,可以检查生成的SQL语句是否有问题,也可以在可视化数据库管理工具中运行试下:

2. 打印SQL语句

fetchSql() 可以返回SQL语句:

$result = Db::table("demo")->where("id",1)->fetchSql()->find();
dump($result);

也可以使用getLastSql静态方法获取SQL语句:

$result = Db::table("demo")->where("id",1)->find();
dump(Db::getLastSql());

打印结果同上。

四、增删查改CURD操作

1. 新增

public function add(){$data = ["username" => "wangwu","password" => "789"];$result = Db::table("demo")->insert($data);dump(Db::getLastSql());dump($result);
}

2. 删除

public function delete(){$result = Db::table("demo")->delete(1);dump(Db::getLastSql());dump($result);
}

3. 更新

public function update(){$result = Db::table("demo")->where("id","2")->update(["password"=>"abc"]);dump(Db::getLastSql());dump($result);
}


⭐️重磅推荐:免费商用电商系统

ThinkPHP6项目基操(6.数据库Db操作)相关推荐

  1. ThinkPHP6项目基操目录

    前言 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色 ...

  2. ThinkPHP6项目基操(15.实战部分 阿里云短信redis)

    阿里云短信redis 一.安装阿里云短信SDK 二.封装到项目lib中 三.radis记录验证码 1. 安装redis服务 2. 可视化redis管理软件 3. PHP安装redis扩展 4. 配置缓 ...

  3. ThinkPHP6项目基操(7.模型)

    模型 一.模型的定义及基本使用 二.模型查询及其他使用 1. new 模型对象 2. 模型获取器 一.模型的定义及基本使用 与Db操作数据库相比,使用模型Model类更方便. 在controller文 ...

  4. ThinkPHP6项目基操(16.实战部分 redis+token登录)

    redis+token登录 前言 一.生成唯一token 二.设置token并返回token到前端 三.登录拦截器(需要登录/不需登录) 前言 登录一般可以使用session处理,它使用比较简单,但是 ...

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

  6. ThinkPHP6项目基操(19.实战部分 Mysql模型事务操作)

    模型事务操作 前言 1. Mysql数据库注意 2. thinkPHP模型使用事务 前言 事务操作在复杂的数据库操作的时候尤为重要,特别是在操作多张表的时候,如果某一步骤出错了,就会导致有脏数据,会很 ...

  7. ThinkPHP6项目基操(1.环境搭建及ThinkPHP6的安装)

    环境搭建及ThinkPHP6.0的安装 一.环境搭建 二.安装ThinkPHP6.0 一.环境搭建 服务器:Nginx1.16.1 端口:80 数据库:MySQL5.7.26 端口:3307 PHP版 ...

  8. php登陆项目,ThinkPHP6项目基操(14.实战部分 中间件处理登录流程)

    一.定义中间件 namespace app\middleware; class Check { public function handle($request, \Closure $next) { i ...

  9. ThinkPHP6项目基操(14.实战部分 中间件处理登录流程)

    中间件处理登录流程 一.定义中间件 二.前置/后置中间件 三.注册中间件 1. 全局中间件 2. 应用中间件 3. 路由中间件 4. 控制器中间件 5. 内置中间件 四.中间件使用 -- 后台登录页面 ...

最新文章

  1. easyui英文提示变中文
  2. Parallel Query Bitmap
  3. Comcast在美国境内遭遇大面积宕机和连接中断问题
  4. linux脚本算术函数,Linux基础之bash脚本编程初级-变量与算术运算
  5. javascript Declarations
  6. cursor: not-allowed;
  7. OpenCV-黑帽运算(BLACKHAT)
  8. 十九、Math和Random类
  9. php悲观锁怎么做,mysql悲观锁怎么实现?
  10. 几款常用的ble调试app(nRF Connect、BLE调试助手、LightBlue)
  11. 对我启发最大的数学学习方法(转自知乎)
  12. js 生成二维码(qrcodejs)
  13. en结尾的单词_239个以en开头结尾的常用英语单词
  14. Alienware-17-R4-630-1060-MacOS 笔记本双显卡 外星人黑苹果hackintosh 10.15
  15. Android手机开发常用数据库,android开发常用的数据库
  16. 如何使用wifi模块搭建农业物联网防治马铃薯晚疫病?
  17. NFT Insider #62:The Sandbox宣布与狮门影业达成合作,红杉资本继续扩大Web3领域投资
  18. 2.命名空间实现机制
  19. Oracle EBS数据库监控-Zabbix+zabbix-agent2+orabbix
  20. 第一坊颜韵和第一坊阿哲抢头条视频直播,一人和宝哥礼物之战

热门文章

  1. mongodb自动关闭:页面文件太小,无法完成操作
  2. 采用Angular勾画SVG圆环形进度条
  3. Oracle审计功能
  4. SolidWorks 更新系统注册记录失败
  5. @90后程序员,“颜值即正义”的现在,程序员应该如何更新穿搭?
  6. FreeEIM 是班级的学习委员
  7. 程序员谨防加班猝死之十大建议
  8. 飞鸽传书下载,还是飞鸽传书下载
  9. 一个简单的完成端口(服务端/客户端)类
  10. 直连数据库实时更新数据,可视化报表这么做简直牛