飞道的博客

ThinkPHP6项目基操(20.实战部分 数据库操作返回值总结)

557人阅读  评论(0)

0. 前言

1. Db类操作数据库

1.1 新增

$data = ['username' => 'bar', 'password' => 'foo'];
$res = Db::name('user')->insert($data);

返回值:

  • 成功:返回1
  • 失败:抛出异常

1.2 更新

// 方式1:save方法包含主键
$res = Db::name('user')->save(['id' => 7, 'username' => 'thinkphp1']);
// 方式2:update方法where条件更新
$res = Db::name('user')->where('id', 7)->update(['username' => 'thinkphp']);
// 方式3:update方法包含主键
$res = Db::name('user')->update(['username' => 'thinkphp','id' => 1]);

返回值:

  • 成功:返回1
  • 失败:若没有发生更新则返回0;若更新字段数据表不存在抛出异常

1.3 删除

1.3.1 单条删除

// 根据主键删除
$res = Db::name('user')->delete(7);
// 条件删除
$res = Db::name('user')->where('id',7)->delete();

返回值:

  • 成功:返回1
  • 失败:返回0 (包括id不存在)

1.3.2 批量删除

// 根据主键删除
$res = Db::name('user')->delete([11,12]);
// 条件删除
$res = Db::name('user')->where('id','>',10)->delete();

返回值:

  • 成功:返回删除记录的条数
  • 失败:返回0 (包括id不存在)

1.4 查询

1.4.1 单笔记录

$res = Db::name('user')->where('id', 16)->find();

返回值:

  • 成功:返回结果数组
  • 失败:返回null

1.4.2 多笔记录

$res = Db::name('user')->where('status', 1)->select();

返回值:

  • 成功:返回数据集对象
  • 失败:返回空数据集对象

如果需要转换为数组可以使用toArray()方法:

Db::name('user')->where('status', 1)->select()->toArray();

返回结果为数组:

2. Model模型类操作数据库

2.1 新增

$user = new UserModel;
$user->username = "aaa";
$user->password = "aaa";
$res = $user->save();
dump($res);
// 也可直接把数据写在save方法里面:
$user->save([
    'username' => 'thinkphp',
    'password' => '123456'
]);

返回值:

save方法成功会返回true,并且只有当before_insert事件返回false的时候返回false,一旦有错误就会抛出异常。所以无需判断返回类型。

2.2 更新

2.2.1 单笔更新

$user = UserModel::find(16);
$user->username     = 'qwer';
$res = $user->save();
dump($res);

save方法成功返回true,并只有当before_update事件返回false的时候返回false,有错误则会抛出异常

2.2.2 批量更新

$user = new UserModel;
$list = [
    ['id'=>16, 'username'=>'thinkphp'],
    ['id'=>17, 'username'=>'onethink']
];
$res = $user->saveAll($list);
dump($res);

返回的是一个数据集对象

2.3 删除

2.3.1 删除模型

$user = UserModel::find(16);
$res = $user->delete();
dump($res);

删除成功返回true,失败可能抛出异常

2.3.2 根据主键删除

User::destroy(1);
// 支持批量删除多个数据
User::destroy([1,2,3]);

主键不存在也返回true

2.3.3 条件删除

User::where('id','>',10)->delete();

返回删除的记录数

2.4 查询

2.4.1 单笔记录

$user = UserModel::find(18);
// where查询
$user = UserModel::where('username', 'aaaa789')->find();

返回模型数据,数据在data参数中;若查询失败返回null

2.4.2 多笔记录

$users = UserModel::select([18,19]);
// where查询
$users = UserModel::where('status', 1)->select();

返回模型集合;若数据不存在返回空模型集合


转载:https://blog.csdn.net/zy1281539626/article/details/112133685
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场