• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】

Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了Thinkphp5.0框架,Db操作实例分析,增删改查,链式操作等相关知识,希望对您有所帮助

这篇文章主要介绍了Thinkphp5.0框架的Db操作,结合实例形式分析了thinkPHP5使用Db库实现数据库的连接、增删改查及链式操作等相关使用技巧,需要的朋友可以参考下

本文实例讲述了Thinkphp5.0框架的Db操作。分享给大家供大家参考,具体如下:

连接操作:

<?phpnamespace app\index\controller;use think\Controller;use think\Db;class Index extends Controller{    public function study_db(){        //方式一:默认读取配置文件的配置        $res = Db::connect();        //方式二:手动配置,使用一个数组        $res = Db::connect([            'type'      => 'mysql',            'hostname'    => '127.0.0.1',            'database'    => 'bodywork3',            'username'    => 'root',            'password'    => '666',            'hostport'    => '3306',            'charset'     => 'utf8'        ]);        //方式三:手动配置,使用一个字符串        $res = Db::connect("mysql://root:password@127.0.0.1:3306/database_name#utf8");        //方式四:手动配置,使用一个字符串        //这种方式,需要在config配置文件中有tp_db_config数组配置        $res = Db::connect("tp_db_config");    }}

查询sql:

$data = Db::query("select * from user");dump($data);$data = Db::table('user')->select();$data = Db::table('user')->find();//获取一条记录的某个字段值$name = Db::table('user')->where(['id']=>5)->value('name');//获取一列值$all_name = Db::table('user')->column('name');//获取一列值,第二个参数作为索引$all_name = Db::table('user')->column('name','id');//注意://select和column获取不到数据时返回空数组。 //find和value获取不到数据时返回null。$data = db('user')->select();//每次会实例化类$data = db('user',[],false)->select();//每次不会实例化类

添加sql:

//执行sql语句添加数据Db::execute("insert into user values (1,'name',10)");//,返回影响的行数$res = Db::name('user')->insert([    'name' => 'hello',    'age' => 10]);//insertGetId()方法可以在添加数据后返回数据的id$id = Db::name('user')->insertGetId([    'name' => 'hello',    'age' => 10]);//添加多个数据,返回影响的行数$res= Db::name('user')->insertAll([    ['name' => 'hello','age' => 10],    ['name' => 'world','age' => 12],]);

更新sql:

//更新多个字段$res = Db::name('user')-where(['id'=>1])->update([    'username' => 'zhang san',    'age' => '6']);//更新一个字段$res = Db::name('user')-where(['id'=>1])->setField('username','zhang san');//自增、自减$res = Db::name('user')-where(['id'=>1])->setInc('score');$res = Db::name('user')-where(['id'=>1])->setDec('score');$res = Db::name('user')-where(['id'=>1])->setInc('score',2);

删除sql:

//删除一条记录$res = Db::name('user')->where(['id'=>1])->delete();//如果where条件是主键,可以这样写$res = Db::name('user')->delete(1);

查询构造器:

//打印sql,where值为数组$sql = Db::name('user')->where(['id'=>1])->buildSql();dump($sql);//结果:SELECT * FROM `user` WHERE `id` = 1//打印sql,where值为两个参数$sql2 = Db::name('user')->where('id',1)->buildSql();dump($sql2);//结果:SELECT * FROM `user` WHERE `id` = 1//打印sql,where值为三个参数$sql3 = Db::name('user')->where('id','=',1)->buildSql();dump($sql3);//结果:SELECT * FROM `user` WHERE `id` = 1//打印sql,where多条件$sql4 = Db::name('user')->where([    'id' => ['in',[1,2,3,4,5]],    'age' => ['gt',10]])->buildSql();dump($sql4);//结果:SELECT * FROM `user` WHERE `id` IN (1,2,3,4,5) AND `age` > 10//使用EXP表达式$sql5 = Db::name('user')->where('id','EXP','not in (2,5)')->buildSql();dump($sql5);//结果:SELECT * FROM `bw_user` WHERE ( `id` not in (2,5) )//可以使用连续的where条件$sql6 = Db::name('user')    ->where('id','EXP','not in (2,5)')    ->where('age','>',10)    ->buildSql();dump($sql6);//结果:SELECT * FROM `bw_user` WHERE ( `id` not in (2,5) ) AND `age` > 10//如果多个where条件是or关系,使用whereOr$sql7 = Db::name('user')    ->where('id','EXP','not in (2,5)')    ->whereOr('age','>',10)    ->buildSql();dump($sql7);//结果:SELECT * FROM `bw_user` WHERE ( `id` not in (2,5) ) OR `age` > 10

链式操作:

//链式操作,常用方法$data = Db::name('user')    ->where(['id','>',10])    ->field('id,name,age')    ->order('addtime desc')    ->limit('10,5')    // ->page('3,5') //limit((page-1)*5,5)    // ->group('course')    ->select();dump($data);



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】

相关文章

  • 2022-04-29分析ThinkORM新增加的虚拟模型功能
  • 2022-04-29vue.js怎么实现二级下拉悬浮菜单
  • 2022-04-29Photoshop制作冬季雪花字教程
  • 2022-04-29设计师应该从四个方面优化网站
  • 2022-04-29Alexa工具条真的能够提升Alexa排名吗?
  • 2022-04-29PHP中exec和system的区别是什么
  • 2022-04-295款优秀的在线表单设计器
  • 2022-04-29百度统计升级屏蔽黑灰产信息功能
  • 2022-04-29JS 中 9 个强大主流写法(各种 Hack 写法)
  • 2022-04-29简单聊聊Redis中GETBIT和SETBIT

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • CSS如何实现元素不随滚动条滚动
    • AI打造牛仔布料纹理
    • Angular如何对请求进行拦截封装?
    • 说说PHP太空船运算符的使用场景
    • PHP中如何利用compact创建数组
    • Dedecms5.7如何将系统的data目录迁移到web以外目录
    • 如何优化uniapp项目?分享几种优化方案及建议
    • 替换uploadify用Huploadify实现上传图片或文件
    • Photoshop详细绘制金属质感的企业标志
    • 分享封装的一个PHP微信支付的类库(扫码、H5、小程序)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有