ThinkPHP6项目基操(6.数据库Db操作)
数据库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操作)相关推荐
- ThinkPHP6项目基操目录
前言 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色 ...
- ThinkPHP6项目基操(15.实战部分 阿里云短信redis)
阿里云短信redis 一.安装阿里云短信SDK 二.封装到项目lib中 三.radis记录验证码 1. 安装redis服务 2. 可视化redis管理软件 3. PHP安装redis扩展 4. 配置缓 ...
- ThinkPHP6项目基操(7.模型)
模型 一.模型的定义及基本使用 二.模型查询及其他使用 1. new 模型对象 2. 模型获取器 一.模型的定义及基本使用 与Db操作数据库相比,使用模型Model类更方便. 在controller文 ...
- ThinkPHP6项目基操(16.实战部分 redis+token登录)
redis+token登录 前言 一.生成唯一token 二.设置token并返回token到前端 三.登录拦截器(需要登录/不需登录) 前言 登录一般可以使用session处理,它使用比较简单,但是 ...
- 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 多笔记录 ...
- ThinkPHP6项目基操(19.实战部分 Mysql模型事务操作)
模型事务操作 前言 1. Mysql数据库注意 2. thinkPHP模型使用事务 前言 事务操作在复杂的数据库操作的时候尤为重要,特别是在操作多张表的时候,如果某一步骤出错了,就会导致有脏数据,会很 ...
- ThinkPHP6项目基操(1.环境搭建及ThinkPHP6的安装)
环境搭建及ThinkPHP6.0的安装 一.环境搭建 二.安装ThinkPHP6.0 一.环境搭建 服务器:Nginx1.16.1 端口:80 数据库:MySQL5.7.26 端口:3307 PHP版 ...
- php登陆项目,ThinkPHP6项目基操(14.实战部分 中间件处理登录流程)
一.定义中间件 namespace app\middleware; class Check { public function handle($request, \Closure $next) { i ...
- ThinkPHP6项目基操(14.实战部分 中间件处理登录流程)
中间件处理登录流程 一.定义中间件 二.前置/后置中间件 三.注册中间件 1. 全局中间件 2. 应用中间件 3. 路由中间件 4. 控制器中间件 5. 内置中间件 四.中间件使用 -- 后台登录页面 ...
最新文章
- easyui英文提示变中文
- Parallel Query Bitmap
- Comcast在美国境内遭遇大面积宕机和连接中断问题
- linux脚本算术函数,Linux基础之bash脚本编程初级-变量与算术运算
- javascript Declarations
- cursor: not-allowed;
- OpenCV-黑帽运算(BLACKHAT)
- 十九、Math和Random类
- php悲观锁怎么做,mysql悲观锁怎么实现?
- 几款常用的ble调试app(nRF Connect、BLE调试助手、LightBlue)
- 对我启发最大的数学学习方法(转自知乎)
- js 生成二维码(qrcodejs)
- en结尾的单词_239个以en开头结尾的常用英语单词
- Alienware-17-R4-630-1060-MacOS 笔记本双显卡 外星人黑苹果hackintosh 10.15
- Android手机开发常用数据库,android开发常用的数据库
- 如何使用wifi模块搭建农业物联网防治马铃薯晚疫病?
- NFT Insider #62:The Sandbox宣布与狮门影业达成合作,红杉资本继续扩大Web3领域投资
- 2.命名空间实现机制
- Oracle EBS数据库监控-Zabbix+zabbix-agent2+orabbix
- 第一坊颜韵和第一坊阿哲抢头条视频直播,一人和宝哥礼物之战