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

来源:undefined 2024-12-29 02:33:19 1002

基本使用

查询操作

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中文网其它相关文章!

最新文章