thinkphp5 db类怎么使用

发布时间 - 2023-05-31 00:00:00    点击率:

一、连接数据库

连接数据库有两种方式,一种是在config.php中配置,另一种是在实例化Db类时传入连接参数。

在config.php中配置:

return [
    // 数据库类型
    'type'      => 'mysql',
    // 服务器地址
    'hostname'  => '127.0.0.1',
    // 数据库名
    'database'  => 'test',
    // 数据库用户名
    'username'  => 'root',
    // 数据库密码
    'password'  => '',
    // 数据库连接端口
    'hostport'  => '',
];

实例化Db类时传入连接参数:

use think\Db;

$config = [
    // 数据库类型
    'type'      => 'mysql',
    // 服务器地址
    'hostname'  => '127.0.0.1',
    // 数据库名
    'database'  => 'test',
    // 数据库用户名
    'username'  => 'root',
    // 数据库密码
    'password'  => '',
    // 数据库连接端口
    'hostport'  => '',
];

Db::connect($config);

二、基本操作

1.查询操作

use think\Db;

//查询一条数据
Db::table('user')->where('id', 1)->find();

//查询多条数据
Db::table('user')->where('age', '>', 18)->select();

2.插入操作

use think\Db;

$data = [
    'username' => 'admin',
    'password' => md5('admin'),
    'sex'      => 1,
    'age'      => 20,
];

Db::table('user')->insert($data);

3.更新操作

use think\Db;

Db::table('user')->where('id', 1)->update(['age' => 21]);

4.删除操作

use think\Db;

Db::table('user')->where('id', 1)->delete();

三、高级操作

1.链式操作

链式操作可以简化sql语句的书写。

use think\Db;

Db::table('user')
    ->alias('u')
    ->join('role r', 'u.role_id=r.id')
    ->where('u.id', 1)
    ->field('u.username, r.name')
    ->find();

2.调试方法

在开发环境中,我们经常需要查看sql语句的执行情况,Db类提供了三个调试方法:getLastSql、getExplain和getSqlLog。

use think\Db;

Db::table('user')->getLastSql();

Db::table('user')->where('age', '>', 18)->getExplain();

Db::table('user')->where('age', '>', 18)->select();
Db::table('user')->getLastSql();

print_r(Db::getSqlLog());

getLastSql方法可以获取最后一次执行的sql语句。

getExplain方法可以获取sql语句的执行计划。

getSqlLog方法可以获取所有执行的sql语句和执行时间。


# thinkphp  # 链式  # 是在  # 连接数据库  # 执行时间  # 有两种  # 多条  # 执行情况  # jpg  # pe  # hongkong 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  青岛网站建设如何选择本地服务器?  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  HTML 中动态设置元素 name 属性的正确语法详解  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何快速登录WAP自助建站平台?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  js实现获取鼠标当前的位置  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  如何快速查询网址的建站时间与历史轨迹?  Java遍历集合的三种方式  Laravel如何配置任务调度?(Cron Job示例)  教你用AI润色文章,让你的文字表达更专业  iOS验证手机号的正则表达式  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Python文件异常处理策略_健壮性说明【指导】  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  如何基于云服务器快速搭建网站及云盘系统?  如何在Windows环境下新建FTP站点并设置权限?  微信小程序 scroll-view组件实现列表页实例代码  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  如何在香港免费服务器上快速搭建网站?  Linux系统命令中tree命令详解  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  制作公司内部网站有哪些,内网如何建网站?  专业商城网站制作公司有哪些,pi商城官网是哪个?  Laravel如何实现一对一模型关联?(Eloquent示例)  如何在IIS7中新建站点?详细步骤解析  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  Java类加载基本过程详细介绍  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Laravel怎么为数据库表字段添加索引以优化查询  制作旅游网站html,怎样注册旅游网站?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  如何用JavaScript实现文本编辑器_光标和选区怎么处理  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  *服务器网站为何频现安全漏洞?  Laravel distinct去重查询_Laravel Eloquent去重方法  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  PythonWeb开发入门教程_Flask快速构建Web应用  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  文字头像制作网站推荐软件,醒图能自动配文字吗?