Thinkphp框架对数据库的操作(总结)

发布时间 - 2020-01-29 00:00:00    点击率:

1.添加数据

1.1添加一条数据

$user           = new User;
$user->name     = 'thinkphp';
$user->email    = 'thinkphp@qq.com';
$user->save();
$user = new User;
$user->save([
    'name'  =>  'thinkphp',
    'email' =>  'thinkphp@qq.com'
]);

 

1.2过滤非数据表字段的数据

$user = new User;
// 过滤post数组中的非数据表字段数据
$user->allowField(true)->save($_POST);

 1.3指定某些字段数据

$user = new User;
// post数组中只有name和email字段会写入
$user->allowField(['name','email'])->save($_POST);

1.4添加多条数据

$user = new User;
$list = [
    ['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
    ['name'=>'onethink','email'=>'onethink@qq.com']
];
$user->saveAll($list);

 

1.5静态方法 

$user = User::create([
    'name'  =>  'thinkphp',
    'email' =>  'thinkphp@qq.com'
]);
echo $user->name;
echo $user->email;
echo $user->id; // 获取自增ID

 

2.更新数据

2.1查找并更新

$user = User::get(1);
$user->name     = 'thinkphp';
$user->email    = 'thinkphp@qq.com';
$user->save();

 2.2直接更新数据

$user = new User;
// save方法第二个参数为更新条件
$user->save([
    'name'  => 'thinkphp',
    'email' => 'thinkphp@qq.com'
],['id' => 1]);

2.3 过滤非数据表字段

$user = new User;
// 过滤post数组中的非数据表字段数据
$user->allowField(true)->save($_POST,['id' => 1]);

2.4指定某些字段

$user = new User();
// post数组中只有name和email字段会写入
$user->allowField(['name','email'])->save($_POST, ['id' => 1]);

2.5批量更新数据

$user = new User;
$list = [
    ['id'=>1, 'name'=>'thinkphp', 'email'=>'thinkphp@qq.com'],
    ['id'=>2, 'name'=>'onethink', 'email'=>'onethink@qq.com']
];
$user->saveAll($list);

 2.6静态方法

User::where('id', 1)
    ->update(['name' => 'thinkphp']);

 

2.7自动识别

 2.7.1显示更新数据

// 实例化模型
$user = new User;
// 显式指定更新数据操作
$user->isUpdate(true)
    ->save(['id' => 1, 'name' => 'thinkphp']);

2.7.2显示新增数据

$user = User::get(1);
$user->name = 'thinkphp';
// 显式指定当前操作为新增操作
$user->isUpdate(false)->save();

3.删除数据

3.1删除当前模型

 

$user = User::get(1);
$user->delete();

 

3.2根据主键删除

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

 3.3条件删除

User::destroy(function($query){
    $query->where('id','>',10);
});

 

4.查询数据

4.1获取单个数据

 

// 取出主键为1的数据
$user = User::get(1);
echo $user->name;
// 使用查询构造器查询满足条件的数据
$user = User::where('name', 'thinkphp')->find();
echo $user->name;

 

4.2获取多个数据

// 根据主键获取多个数据
$list = User::all('1,2,3');
// 或者使用数组
$list = User::all([1,2,3]);
// 对数据集进行遍历操作
foreach($list as $key=>$user){
    echo $user->name;
}
// 使用查询构造器查询
$list = User::where('status', 1)->limit(3)->order('id', 'asc')->select();
foreach($list as $key=>$user){
    echo $user->name;
}

4.3获取某个字段或者某个列的值

// 获取某个用户的积分
User::where('id',10)->value('score');
// 获取某个列的所有值
User::where('status',1)->column('name');
// 以id为索引
User::where('status',1)->column('name','id');

更多相关ThinkPHP知识,请访ThinkPHP教程


# thinkphp  # 数据库  # 多个  # 组中  # 主键  # 遍历  # 自动识别  # 第二个  # 更多相关  # 多条  # update  # saveAll 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  Python文件操作最佳实践_稳定性说明【指导】  ,在苏州找工作,上哪个网站比较好?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  如何获取上海专业网站定制建站电话?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  高防服务器租用如何选择配置与防御等级?  教你用AI润色文章,让你的文字表达更专业  Laravel distinct去重查询_Laravel Eloquent去重方法  Python制作简易注册登录系统  如何打造高效商业网站?建站目的决定转化率  Laravel如何使用查询构建器?(Query Builder高级用法)  新三国志曹操传主线渭水交兵攻略  Android使用GridView实现日历的简单功能  如何快速选择适合个人网站的云服务器配置?  在centOS 7安装mysql 5.7的详细教程  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  如何在IIS中新建站点并解决端口绑定冲突?  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  如何在IIS7上新建站点并设置安全权限?  java获取注册ip实例  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  如何有效防御Web建站篡改攻击?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  如何快速搭建高效服务器建站系统?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  JavaScript数据类型有哪些_如何准确判断一个变量的类型  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  详解Android中Activity的四大启动模式实验简述  南京网站制作费用,南京远驱官方网站?  如何在建站主机中优化服务器配置?  如何用VPS主机快速搭建个人网站?  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  如何解决hover在ie6中的兼容性问题  Android Socket接口实现即时通讯实例代码  如何自定义建站之星模板颜色并下载新样式?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  如何在腾讯云服务器上快速搭建个人网站?  如何在阿里云完成域名注册与建站?  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  如何续费美橙建站之星域名及服务?