TP6常用的增删改查方法合集(DB类+模型类)
注意:
1、注意引入DB和模型的门面类
2、想要添加视图文件,一定要先composer引入view模板引擎
3、下面方法来自官方手册,只是写了一些个人常用的,并非齐全。
增(添加)
DB类方法
方法一:
$data = ['name'=>'张三', 'sex'=>'男'];
Db::table('tp_user')->insert($data);
方法二:
Db::table('tp_user')->insert( ['name'=>'张三', 'sex'=>'男']);
返回主键ID:
$userId = Db::table('tp_user')->insertGetId($data);
批量插入:
$dataAll = [
['foo' => 'bar1', 'bar' => 'foo1'],
['foo' => 'bar2', 'bar' => 'foo2'],
['foo' => 'bar3', 'bar' => 'foo3']
];
Db::table('tp_user')->limit(100)->insertAll($dataAll); //分批写入 每次最多100条数据
模型类方法
方法一:
$user = new User;
$user->name = 'thinkphp';
$user->save();
方法二:
$user = new User;
$user->save(['name' => 'thinkphp']);
批量插入:
$user = new User;
$list = [
['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
['name'=>'onethink','email'=>'onethink@qq.com']
];
$user->saveAll($list);
静态方法插入:
$user = User::create(['name' => 'thinkphp', 'email' => 'thinkphp@qq.com']);
echo $user->id; // 获取自增ID
删(删除)
DB类方法
根据主键删除:
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','<',10)->delete();
模型类方法
方法一:
$user = User::find(1);
$user->delete();
闭包删除:
User::destroy(function($query){
$query->where('id','>',10);
});
静态方法一:
User::destroy(1);
User::destroy([1,2,3]);
静态方法二:
User::where('id','>',10)->delete();
改(更新)
DB类方法
方法一:
Db::table('think_user')->save(['id' => 1, 'name' => 'thinkphp']);
方法二:
Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);
方法三:
Db::table('think_user')->update(['name' => 'thinkphp','id' => 1]);
模型类方法
方法一:
$user = User::find(1);
$user->name = 'thinkphp';
$user->save();
批量修改:
$user = new User;
$list = [
['id'=>1, 'name'=>'thinkphp', 'email'=>'thinkphp@qq.com'],
['id'=>2, 'name'=>'onethink', 'email'=>'onethink@qq.com']
];
$user->saveAll($list);
静态方法:
User::update(['name' => 'thinkphp', 'id' => 1]);
User::update(['name' => 'thinkphp'], ['id' => 1]);
查(查询)
DB类方法
单条查询:
Db::table('think_user')->where('id', 1)->find();
多条查询:
Db::table('think_user')->where('status', 1)->select();
模型类方法
单个查询:
$user = User::find(1);
批量查询:
$user = User::select([1,2,3]);
连贯操作 | 作用 | 支持的参数类型 |
---|---|---|
where* | 用于AND查询 | 字符串、数组和对象 |
whereOr* | 用于OR查询 | 字符串、数组和对象 |
whereTime* | 用于时间日期的快捷查询 | 字符串 |
table | 用于定义要操作的数据表名称 | 字符串和数组 |
alias | 用于给当前数据表定义别名 | 字符串 |
field* | 用于定义要查询的字段(支持字段排除) | 字符串和数组 |
order* | 用于对结果排序 | 字符串和数组 |
limit | 用于限制查询结果数量 | 字符串和数字 |
page | 用于查询分页(内部会转换成limit) | 字符串和数字 |
group | 用于对查询的group支持 | 字符串 |
having | 用于对查询的having支持 | 字符串 |
join* | 用于对查询的join支持 | 字符串和数组 |
union* | 用于对查询的union支持 | 字符串、数组和对象 |
view* | 用于视图查询 | 字符串、数组 |
distinct | 用于查询的distinct支持 | 布尔值 |
lock | 用于数据库的锁机制 | 布尔值 |
cache | 用于查询缓存 | 支持多个参数 |
with* | 用于关联预载入 | 字符串、数组 |
bind* | 用于数据绑定操作 | 数组或多个参数 |
comment | 用于SQL注释 | 字符串 |
force | 用于数据集的强制索引 | 字符串 |
master | 用于设置主服务器读取数据 | 布尔值 |
strict | 用于设置是否严格检测字段名是否存在 | 布尔值 |
sequence | 用于设置Pgsql的自增序列名 | 字符串 |
failException | 用于设置没有查询到数据是否抛出异常 | 布尔值 |
partition | 用于设置分区信息 | 数组 字符串 |
replace | 用于设置使用REPLACE方式写入 | 布尔值 |
extra | 用于设置额外查询规则 | 字符串 |
duplicate | 用于设置DUPLCATE信息 | 数组 字符串 |
所有的连贯操作都返回当前的模型实例对象(this),其中带*标识的表示支持多次调用。