thinkphp5 db类怎么使用

2023年 8月 6日 64.9k 0

一、连接数据库

连接数据库有两种方式,一种是在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语句和执行时间。

以上就是thinkphp5 db类怎么使用的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论