侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

ThinkPHP  /  管理员 发布于 8年前   289

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

连接操作:

 'mysql',      'hostname'    => '127.0.0.1',      'database'    => 'bodywork3',      'username'    => 'root',      'password'    => '666',      'hostport'    => '3306',      'charset'     => 'utf8'    ]);    //方式三:手动配置,使用一个字符串    $res = Db::connect("mysql://root:[email protected]: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();//每次不会实例化类
//表名字,使用table    $data = Db::table('prefix_user')->select();//表名字,使用name$data = Db::name('user')->select();  //使用table()时需要带上表前缀,//使用name()时不需要表前缀,

添加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);

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

您可能感兴趣的文章:

  • tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
  • ThinkPHP5.1框架数据库链接和增删改查操作示例
  • thinkPHP框架通过Redis实现增删改查操作的方法详解
  • thinkPHP数据库增删改查操作方法实例详解
  • thinkphp3.2.3版本的数据库增删改查实现代码
  • thinkPHP5实现的查询数据库并返回json数据实例
  • tp5(thinkPHP5)操作mongoDB数据库的方法
  • tp5(thinkPHP5)框架实现多数据库查询的方法
  • tp5(thinkPHP5)框架连接数据库的方法示例
  • thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
  • tp5框架的增删改查操作示例


  • 上一条:
    Thinkphp5.0 框架Model模型简单用法分析
    下一条:
    thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • thinkphp + mongodb项目中数据加载慢问题分析及解决(0个评论)
    • thinkphp6框架中封装redis操作类(0个评论)
    • thinkphp6框架中实现定时任务功能流程步骤(0个评论)
    • Thinkphp5.1框架中实现Session+Redis会话共享流程步骤(0个评论)
    • TP5框架版本5.0.10安全漏洞根据官方补丁修复,也是本站安全漏洞修复(0个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-12
    • 2018-01
    • 2018-02
    • 2020-03
    • 2021-07
    • 2021-12
    • 2022-05
    • 2022-06
    • 2022-09
    • 2023-01
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客