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

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();

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


⭐️重磅推荐:免费商用电商系统

😏想白嫖整个电商系统用来商用?
🤑想有自己的商城实现财富自由?
🤓想学习最佳实践提升自己技术?

快来进入🚀 传送门 🚀,开源免费、完整示例带你快速入门,轻松二开,走上人生巅峰!👨‍🎓
在这里插入图片描述

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优小U

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值