Thinkphp5.0对数据库的操作方法有哪些

2023年 8月 6日 134.8k 0

基本使用

查询操作

Db::query('select * from think_user where id=?',[8]);

登录后复制

写入操作

Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']);

登录后复制

查询构造器

查询数据

find 返回一条记录,返回的结果是一个一维数组 如果结果不存在,返回NULL

Db::table('think_user')->where('id',1)->find();

登录后复制

select 返回所有记录,返回的结果是一个二维数组 如果结果不存在,返回一个空数组

Db::table('think_user')->where('status',1)->select();

登录后复制

助手函数

系统提供了一个db助手函数,可以更方便的查询:

db('user')->where('id',1)->find();
db('user')->where('status',1)->select();

登录后复制

注意:使用db助手函数默认每次都会重新连接数据库,而使用Db::name或者Db::table方法的话都是单例的。db函数如果需要采用相同的链接,可以传入第三个参数,例如

db('user',[],false)->where('id',1)->find();
db('user',[],false)->where('status',1)->select();

登录后复制

添加数据

使用 Db 类的 insert 方法向数据库提交数据

$data = ['foo' => 'bar', 'bar' => 'foo'];
Db::table('think_user')->insert($data);

登录后复制

添加多条数据

添加多条数据直接向 Db 类的 insertAll 方法传入需要添加的数据即可

$data = [ ['foo' => 'bar', 'bar' => 'foo'],
['foo' => 'bar1', 'bar' => 'foo1'],
['foo' => 'bar2', 'bar' => 'foo2']
];
Db::name('user')->insertAll($data);

登录后复制

insertAll 方法添加数据成功返回添加成功的条数

助手函数

// 添加单条数据
db('user')->insert($data);

// 添加多条数据
db('user')->insertAll($list);

登录后复制

更新数据

update 方法返回影响数据的条数,没修改任何数据返回 0

Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);

登录后复制

更新某个字段的值: setField 方法返回影响数据的条数,没修改任何数据字段返回 0

Db::table('think_user')->where('id',1)->setField('name', 'thinkphp');

登录后复制

自增或自减一个字段的值
// score 字段加 1
Db::table('think_user')->where('id', 1)->setInc('score');
// score 字段加 5
Db::table('think_user')->where('id', 1)->setInc('score', 5);
// score 字段减 1
Db::table('think_user')->where('id', 1)->setDec('score');
// score 字段减 5
Db::table('think_user')->where('id', 1)->setDec('score', 5);

登录后复制

延迟更新

Db::table('think_user')->where('id', 1)->setInc('score', 1, 10);

登录后复制

删除数据

// 根据主键删除
Db::table('think_user')->delete(1);
Db::table('think_user')->delete([1,2,3]);

// 条件删除
Db::table('think_user')->where('id',1)->delete();
Db::table('think_user')->where('id','

相关文章

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

发布评论