thinkphp5 新增模块(Thinkphp5.0框架的Db操作实例分析连接、增删改查、链式操作等)
类别:编程学习 浏览量:2642
时间:2021-10-15 00:40:21 thinkphp5 新增模块
Thinkphp5.0框架的Db操作实例分析连接、增删改查、链式操作等本文实例讲述了Thinkphp5.0框架的Db操作。分享给大家供大家参考,具体如下:
连接操作:
|
<?php namespace 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(); //每次不会实例化类 |
|
//表名字,使用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框架的PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/gyfluck/p/9415018.html
您可能感兴趣
- vuephp后台开发框架(Vue+thinkphp5.1+axios实现文件上传)
- thinkphp 多维度展示数据(Thinkphp自定义生成缩略图尺寸的方法)
- thinkphp5配置入口路径(ThinkPHP5.1框架数据库链接和增删改查操作示例)
- thinkphp伪静态实例(thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解)
- thinkphp5对接支付宝扫码支付(ThinkPHP框架下整合支付宝支付功能图文教程)
- thinkphp微信开发教程(微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解)
- thinkphp6.0安装(使用composer安装使用thinkphp6.0框架问题视频教程)
- thinkphp5.1请求流程(ThinkPHP5.0框架使用build 自动生成模块操作示例)
- thinkphp框架多文件上传完整代码(Thinkphp5 自定义上传文件名的实现方法)
- think php上传服务器(ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例)
- ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解(ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解)
- thinkphp返回json(thinkphp5框架实现数据库读取的数据转换成json格式示例)
- thinkphp5分页数据怎么处理(TP5thinkPHP5框架实现显示错误信息及行号功能的方法)
- thinkphp5 api开发(thinkphp5框架前后端分离项目实现分页功能的方法分析)
- thinkphp分页效果怎样(thinkphp5+layui实现的分页样式示例)
- thinkphp框架详解(thinkphp3.2框架中where条件查询用法总结)
- 1天密接者猛增77人,患者轨迹透露危险信号 吉林市全面封闭管理(1天密接者猛增77人)
- 吉林舒兰 封城 15人确诊 276人隔离,出现跨省传播(吉林舒兰封城)
- 四月新番CP人气榜公布,《剃须》两度上榜,沙优不是女朋友(四月新番CP人气榜公布)
- 2019年外媒秋季新番动画角色CP排行榜,桐人和爱丽丝落榜(2019年外媒秋季新番动画角色CP排行榜)
- 新一小兰领衔 盘点动漫中的那些 远距离恋爱情侣(盘点动漫中的那些)
- 大事件 合肥四中火了(大事件合肥四中火了)
热门推荐
- linux如何使用gdb调试(Linux下如何使用gdb调试core文件)
- 网站友好性的几个建议
- python实现将txt转化为excel(python实现Excel文件转换为TXT文件)
- python提取json数据(Python爬取数据保存为Json格式的代码示例)
- kubernetes 虚拟机安装(VirtualBox+Ubuntu16搭建Kubernetes集群的实现)
- ftp管理用户权限(FTP 分类账户设置经验谈)
- asp.net自定义分页控件
- docker 镜像导入导出(Docker镜像的导入导出代码实例)
- 比较好用的安装包制作工具 Advanced Installer
- python验证码处理教程(python简单验证码识别的实现方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9