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
您可能感兴趣
- thinkphp5.1插件实现(Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例)
- thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
- thinkphp快速入门手册(从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解)
- ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解(ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解)
- thinkphp5.1手动连接mysql数据库(thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例)
- thinkphp5配置入口路径(ThinkPHP5.1框架数据库链接和增删改查操作示例)
- thinkphp伪静态实例(thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解)
- thinkphp权限认证怎么用(ThinkPHP框架结合Ajax实现用户名校验功能示例)
- thinkphp5怎么设置默认返回(thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结)
- thinkphp5怎么设置当前的模块(thinkPHP5.1框架中Request类四种调用方式示例)
- thinkphp中view视图的作用(Thinkphp5.0框架视图view的模板布局用法分析)
- thinkphp兼容dedecms(DedeCMS Error:Tag disabled:"php"的解决办法)
- thinkphp微信开发实例(ThinkPHP框架下微信支付功能总结踩坑笔记)
- thinkphp5 api开发(thinkphp5框架前后端分离项目实现分页功能的方法分析)
- thinkphp实战教程之博客技术学习(python3编写ThinkPHP命令执行Getshell的方法)
- thinkphp5对接支付宝扫码支付(ThinkPHP框架下整合支付宝支付功能图文教程)
- 四月新番CP人气榜公布,《剃须》两度上榜,沙优不是女朋友(四月新番CP人气榜公布)
- 2019年外媒秋季新番动画角色CP排行榜,桐人和爱丽丝落榜(2019年外媒秋季新番动画角色CP排行榜)
- 新一小兰领衔 盘点动漫中的那些 远距离恋爱情侣(盘点动漫中的那些)
- 大事件 合肥四中火了(大事件合肥四中火了)
- 翼龙贷组织出借人调研 感受鄱阳 借 来的致富路(翼龙贷组织出借人调研)
- 2023新国风戏曲教育寒假集训班汇报演出《戏娃闹元宵》图文报道(2023新国风戏曲教育寒假集训班汇报演出戏娃闹元宵图文报道)
热门推荐
- dedecms自定义函数(DEDECMS相关文章以关键字相关的修改方法自定义函数)
- dockerfile启动容器服务(docker文件存放路径, 获取容器启动命令操作)
- 如何使用docker启动tomcat(简述Docker安装Tomcat镜像并部署web项目)
- SQL中的注释
- webview上传功能教程(关于webview适配H5上传照片或者视频文件的方法)
- docker导出日志(excel导出在docker环境中总是失败的问题)
- vue.js 怎么做插件(Vue.js实现音乐播放器)
- MYSQL中GROUP BY不包含所有的非聚合字段时的注意事项
- extjs实现树形下拉框
- django实现登录注册(django与小程序实现登录验证功能的示例代码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9