thinkphp创建对象及数据操作
ThinkPHP有三种创建控制器对象的方式:
- 通过命名空间的路径找到类然后new出来例如:$dx = new \Home\Controller\IndexController();
- 通过A快捷函数创建对象A("模块/控制器")例如: $dx = A("Home\Index");
- 通过R快捷函数创建对象并调用方法;R("Index/ShuChu")
ThinkPHP操作数据库:
首先需要在配置文件中配置数据库信息
在创建模型对象执行sql语句
创建模型对象有三种方式:
- 原始方式需要模型中建模型类,类名必须是数据库表名,例如:$m = new \Home\Model\InfoModel();
- 使用快捷函数D:$m = D("Info");需要注意的是如果没有模型类可以不加参数,对象就是model父类的对象
3、使用快捷函数M:$m = M("Nation");
操作数据库:
首先介绍一下连贯函数,就是返回值是:$this,也就是说返回自身对象,可以继续调用函数
数据库操作中基本的函数:select("主键值【,主键值】")、find("主键值"),聚合函数不是连贯函数。
具体用法如下如下:(可以参考手册)
操作数据库
$attr = $m->select(); //查询所有数据
$attr = $m->select("p001,p002,p003");
$attr = $m->find("p001"); //找特定的数据根据主键值找
where可以加查询条件
$attr = $m->where("code='p001' or sex=true")->select();
table可以切换要操作的表
$attr = $m->table("Nation")->select();
alias可以设置表的别名
$attr = $m->alias("人员")->select();
field可以指定查询的字段
$attr = $m->field("code,name")->select();
order可以加排序条件
$attr = $m->order("Nation desc")->select();
group可以分组
$attr = $m->field("Nation")->group("Nation")->select();
having可以加分组后的条件
$attr = $m->field("Nation")->group("Nation")->having("count(*)>5")->select();
join可以连接多个表,在field里面要给字段加别名
$attr = $m->field("Info.Code as 代号,Info.Name as 姓名,Sex as 性别,Nation.Name as 民族名称")->join("Nation on Info.Nation = Nation.Code")->select();
union联合查询
$attr = $m->field("name")->union("select name from nation")->select();
distinct去重
$attr = $m->field("Nation")->distinct(true)->select();
limit可以分页,参数第一个代表跳过多少条,第二个代表取多少条
$attr = $m->limit(10,5)->select();
page可以分页。第一个参数代表是当前页,第二个参数代表每页多少条
$attr = $m->page(3,5)->select();
取数据总条数
$attr = $m->count("*");
取某一列的和
$attr = $m->table("Car")->sum("Price");
取平均值
$attr = $m->table("Car")->avg("Price");
取最大值
$attr = $m->table("Car")->max("Price");
取最小值
$attr = $m->table("Car")->min("Price");
$sql = "select * from Info where Nation='n001'";
$attr = $m->query($sql);
$sql = "insert into Nation values('n104','按实际')";
$attr = $m->execute($sql);
$attr = $m->field("Info.Code as code,Info.Name as name,sex,Nation.Name as nationname,birthday")->join("Nation on Info.Nation = Nation.Code")->select();
$this->assign("info",$attr);
$this->assign("test",10);
$this->display();
ThinkPHP内置标签
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代号</td>
<td>姓名</td>
<td>性别</td>
<td>民族</td>
<td>生日</td>
</tr>
<foreach name="info" item="v" > //name是传过来的名字,item是数组元素
<tr>
<td><{$v.code}></td>
<td><{$v.name}></td>
<td><{$v["sex"]?"男":"女"}></td> //三目运算符不支持点操作
<td><{$v.nationname}></td>
<td><{$v.birthday}></td>
</tr>
</foreach>
</table>
<if condition="$test gt 10"> //condition是条件,因为是标签为了防止歧义用备用词
hello 5
<else />
hello 10
</if>
转载于:https://www.cnblogs.com/yongjiapei/p/5723718.html
thinkphp创建对象及数据操作相关推荐
- Redis数据操作和与Python交互
Redis数据操作和与Python交互 文章目录 Redis数据操作和与Python交互 一.数据结构 1.String 字符串类型 2.Hash (哈希) 3.列表 4.Set 集合 5.zset ...
- Java基础-22总结登录注册IO版,数据操作流,内存操作流,打印流,标准输入输出流,转换流,随机访问流,合并流,序列化流,Properties...
你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新 ...
- ThinkPHP 6.0 phpspreadsheet操作Excel表格实例
在 ThinkPHP 6.0 中实现 excel 导出功能,需要使用第三方扩展phpspreadsheet. 安装和导入导出就不再讲解了,可以看这两篇: <ThinkPHP6 excel 导入功 ...
- Java基础-22总结登录注册IO版,数据操作流,内存操作流,打印流,标准输入输出流,转换流,随机访问流,合并流,序列化流,Properties
你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新 ...
- Laravel Model数据操作
Laravel DEM数据操作 1. 创建对应的model a) Php artisan make:make 名字+Model b) 直接在文件夹下面创建model类 2. 操作 ...
- numpy和torch数据操作对比
对numpy和torch数据操作进行对比,避免遗忘. ndarray和tensor import torch import numpy as npnp_data = np.arange(6).resh ...
- Redis数据库搭建主从同步(主从概念、主从配置、主从数据操作)
1. 主从概念 ⼀个master可以拥有多个slave,⼀个slave⼜可以拥有多个slave,如此下去,形成了强⼤的多级服务器集群架构 master用来写数据,slave用来读数据,经统计:网站的读 ...
- 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)
1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名 [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...
- MySQL基础篇:数据操作语言DML
1.概述 数据操作语言(DML)用于插入.修改.删除.查询数据记录,包括以下SQL语句: INSERT:添加数据到数据库中 UPDATE:修改数据库中的数据 DELETE:删除数据库中的数据 2.插入 ...
- 逻辑模型三要素-数据操作
数据操作是指对数据库中各种对象的实例或取值所允许执行操作的集合,其中包括操作方法及有关规则,它是对数据库动态特性的描述.
最新文章
- 为什么机器学习模型在生产中会退化?
- jquery的$.extent()方法的总结
- 利用IDA6.6进行apk dex代码动态调试
- Android之Timer和TimerTask的介绍
- 史上最全的maven pom.xml文件教程详解
- linux驱动read函数 copytouser,Linux驱动编程 step-by-step (五)主要的文件操作方法实现...
- centos7 qt之程序编译 cant start process “cmake”
- easyui弹出层在最顶层显示跳出iframe框架通用javascript代码
- mysql 安装、建库、导入导出数据
- SQL Server 2008将数据导出到SQL脚本文件
- 女儿傻 女儿悲 2014-2-23
- java安卓版_Java虚拟机安卓版下载
- 中标麒麟linux系统安装打印机_安装国产Linux中标麒麟操作系统教程
- 西威变频器avo下载调试资料_小白妙招 | G120/G120C 变频器模拟量断线速度保持
- mt管理器主题修改教程_QQ主题+微博主题
- 移动端字体小于12px的解决方案
- CTO、首席架构师、技术总监、研发Leader、高级程序员的职责
- RF01 RF环境搭建及简介
- AI文件资源导出方法
- TIA博途_PROFINET设备名称的分配方法详解和无介质设备更换具体步骤
热门文章
- IDEA配置插件,插件使编程更快速
- 天津理工大学计算机考研录取名单,2020年天津理工大学硕士研究生拟录取名单公示...
- 4.2线程局部变量(Thread-Local Variables)
- 2.同步(Synchronization)
- MyBatis使用动态SQL语句
- mapper接口中的方法,example实例解析
- 【Python实例第11讲】文本的核外分类
- pku1159 Palindrome(简单dp)
- 算法与数据结构(一)-导学
- (备忘)Java web项目迁移到Centos7中验证码无法显示