基本使用
查询操作
1
Db::query(select * from think_user where id=?,[8]);
写入操作
1
Db::execute(insert into think_user (id, name) values (?, ?),[8,thinkphp]);
查询构造器
查询数据
find 返回一条记录,返回的结果是一个一维数组 如果结果不存在,返回NULL
1
Db::table(think_user)->where(id,1)->find();
select 返回所有记录,返回的结果是一个二维数组 如果结果不存在,返回一个空数组
1
Db::table(think_user)->where(status,1)->select();
系统提供了一个db助手函数,可以更方便的查询:
1
2
db(user)->where(id,1)->find();
db(user)->where(status,1)->select();
注意:使用db助手函数默认每次都会重新连接数据库,而使用Db::name或者Db::table方法的话都是单例的。db函数如果需要采用相同的链接,可以传入第三个参数,例如
1
2
db(user,[],false)->where(id,1)->find();
db(user,[],false)->where(status,1)->select();
添加数据
使用 Db 类的 insert 方法向数据库提交数据
1
2
$data = [foo => bar, bar => foo];
Db::table(think_user)->insert($data);
添加多条数据
添加多条数据直接向 Db 类的 insertAll 方法传入需要添加的数据即可
1
2
3
4
5
$data = [ [foo => bar, bar => foo],
[foo => bar1, bar => foo1],
[foo => bar2, bar => foo2]
];
Db::name(user)->insertAll($data);
insertAll 方法添加数据成功返回添加成功的条数
助手函数
1
2
3
4
5
// 添加单条数据
db(user)->insert($data);
// 添加多条数据
db(user)->insertAll($list);
更新数据
update 方法返回影响数据的条数,没修改任何数据返回 0
1
Db::table(think_user)->where(id, 1)->update([name => thinkphp]);
更新某个字段的值: setField 方法返回影响数据的条数,没修改任何数据字段返回 0
1
Db::table(think_user)->where(id,1)->setField(name, thinkphp);
1
2
3
4
5
6
7
8
9
自增或自减一个字段的值
// 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);
延迟更新
1
Db::table(think_user)->where(id, 1)->setInc(score, 1, 10);
删除数据
1
2
3
4
5
6
7
// 根据主键删除
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,delete();
条件查询方法
where
可以使用where方法进行AND条件查询:
1
2
3
4
Db::table(think_user)
->where(name,like,%thinkphp)
->where(status,1)
->find();
whereOr方法
1
2
3
4
Db::table(think_user)
->where(name,like,%thinkphp)
->whereOr(title,like,%thinkphp)
->find();
混合查询
where方法和whereOr方法在复杂的查询条件中经常需要配合一起混合使用,下面举个例子:
1
2
3
4
5
$result = Db::table(think_user)->where(function ($query) {
$query->where(id, 1)->whereor(id, 2);
})->whereOr(function ($query) {
$query->where(name, like, think)->whereOr(name, like, thinkphp);
})->select();
查询表达式
查询表达式支持大部分的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式:
1
2
where(字段名,表达式,查询条件);
whereOr(字段名,表达式,查询条件);
1
2
3
4
5
6
表达式 含义
EQ、= 等于(=)
NEQ、 不等于()
GT、> 大于(>)
EGT、>= 大于等于(>=)
LT、 time 时间比较
以上就是Thinkphp5.0对数据库的操作方法有哪些的详细内容,更多请关注php中文网其它相关文章!