登录  /  注册
首页 > php框架 > ThinkPHP > 正文

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

藏色散人
发布: 2020-01-29 14:08:27
转载
2911人浏览过

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

1.添加数据

1.1添加一条数据

$user           = new User;
$user->name     = &#39;<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15717.html" target="_blank">thinkphp</a>&#39;;
$user->email    = &#39;thinkphp@qq.com&#39;;
$user->save();
$user = new User;
$user->save([
    &#39;name&#39;  =>  &#39;thinkphp&#39;,
    &#39;email&#39; =>  &#39;thinkphp@qq.com&#39;
]);
登录后复制

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

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

1.3指定某些字段数据

$user = new User;
// post数组中只有name和email字段会写入
$user->allowField([&#39;name&#39;,&#39;email&#39;])->save($_POST);
登录后复制

1.4添加多条数据

$user = new User;
$list = [
    [&#39;name&#39;=>&#39;thinkphp&#39;,&#39;email&#39;=>&#39;thinkphp@qq.com&#39;],
    [&#39;name&#39;=>&#39;onethink&#39;,&#39;email&#39;=>&#39;onethink@qq.com&#39;]
];
$user->saveAll($list);
登录后复制

1.5静态方法

$user = User::create([
    &#39;name&#39;  =>  &#39;thinkphp&#39;,
    &#39;email&#39; =>  &#39;thinkphp@qq.com&#39;
]);
echo $user->name;
echo $user->email;
echo $user->id; // 获取自增ID
登录后复制

2.更新数据

2.1查找并更新

$user = User::get(1);
$user->name     = &#39;thinkphp&#39;;
$user->email    = &#39;thinkphp@qq.com&#39;;
$user->save();
登录后复制

2.2直接更新数据

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

2.3 过滤非数据表字段

$user = new User;
// 过滤post数组中的非数据表字段数据
$user->allowField(true)->save($_POST,[&#39;id&#39; => 1]);
登录后复制

2.4指定某些字段

$user = new User();
// post数组中只有name和email字段会写入
$user->allowField([&#39;name&#39;,&#39;email&#39;])->save($_POST, [&#39;id&#39; => 1]);
登录后复制

2.5批量更新数据

$user = new User;
$list = [
    [&#39;id&#39;=>1, &#39;name&#39;=>&#39;thinkphp&#39;, &#39;email&#39;=>&#39;thinkphp@qq.com&#39;],
    [&#39;id&#39;=>2, &#39;name&#39;=>&#39;onethink&#39;, &#39;email&#39;=>&#39;onethink@qq.com&#39;]
];
$user->saveAll($list);
登录后复制

2.6静态方法

User::where(&#39;id&#39;, 1)
    ->update([&#39;name&#39; => &#39;thinkphp&#39;]);
登录后复制

2.7自动识别

2.7.1显示更新数据

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

2.7.2显示新增数据

$user = User::get(1);
$user->name = &#39;thinkphp&#39;;
// 显式指定当前操作为新增操作
$user->isUpdate(false)->save();
登录后复制

3.删除数据

3.1删除当前模型

$user = User::get(1);
$user->delete();
登录后复制

3.2根据主键删除

User::destroy(1);
// 支持批量删除多个数据
User::destroy(&#39;1,2,3&#39;);
// 或者
User::destroy([1,2,3]);
登录后复制

3.3条件删除

User::destroy(function($query){
    $query->where(&#39;id&#39;,&#39;>&#39;,10);
});
登录后复制

4.查询数据

4.1获取单个数据

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

4.2获取多个数据

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

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

// 获取某个用户的积分
User::where(&#39;id&#39;,10)->value(&#39;score&#39;);
// 获取某个列的所有值
User::where(&#39;status&#39;,1)->column(&#39;name&#39;);
// 以id为索引
User::where(&#39;status&#39;,1)->column(&#39;name&#39;,&#39;id&#39;);
登录后复制

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

以上就是Thinkphp框架对数据库的操作(总结)的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
相关标签:
来源:cnblogs网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号