热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ThinkPHP模型(查询)

将convention.php中关于数据库的配置复制到模块中的Confconfig.php文件中TP框架中的模型用来操作数据库,写在model文件夹下,

将convention.php中关于数据库的配置复制到 模块中的Conf/config.php文件中

TP框架中的模型用来操作数据库,写在model文件夹下, 数据库中的每张表对应到TP框架中就是一个类 表中的字段(列)对应为类的成员变量

如 使用Info表 就是一个Infomodel.class.php

如果不对表进行特殊操作 就可以不用去做Info的模型文件

1.原始方式

先做model模型

infoModel.class.php   表名+Model.class.php

namespace Home\Model;

use Think\Model;
class infoModel extends Model
{
}

    调用方法输出

function DB()
{
$m=new \Home\Model\infoModel();
var_dump($m);
}

2.使用快捷方法D() 相当于new
$m=D("info");

3.使用快捷方法M() 造父类model对象
$m=M("nation");
var_dump($m);

【操作数据库】
$attr=$m->select();//查询所有数据
$attr=$m->select("p001,p002"); //()内是一个参数,隔开 返回二维数组
$attr=$m->find("p001");//找特定一条数据,只能根据主键值找,返回一维数组

var_dump($attr);

【连贯操作】:类中的一个操作方法  执行完操作后 return一个$this  它还是一个对象  它还可以继续调用方法  直到某个不返回对象的方法

【数据查询方法支持的连贯操作方法有】:

where 可以加查询条件
$attr=$m->where("code='p001' or sex=true")->select();

table 可以切换要操作的表
$attr=$m->table("nation")->select();

alias 可以设置表的别名
$attr=$m->alias("haha")->select();
var_dump($m);

field 可以指定查询的列(字段)
$attr=$m->field("code,name")->select();

order 可以加排序条件默认升序 desc降序
$attr=$m->order("nation desc")->select();

group可以分组
$attr=$m->field("nation")->group("nation")->select();

having可以加分组后的条件
$attr=$m->field("nation")->group("nation")->having("count(*)>2")->select();
select nation from info group by nation having count(*)>2

join可以连接多个表,注意在field里要给字段加别名
$attr=$m->field("info.code,info.name as xingming,sex,nation.name")->join("nation on info.nation=nation.code")->select();//注意给查询的字段加别名

联合查询,一起显示
$attr=$m->field("name")->union("select name from nation")->select();

distinct去重 先查一列 再去重 需加参数true
$attr=$m->field("nation")->distinct(true)->select();

limit可以分页 参数 第一个代表跳过多少条 第二个代表取多少条(每页显示多少条)
$attr=$m->limit(3,3)->select();


page分页 第一个参数代表当前第几页,第二个参数代表每页多少条
$attr=$m->page(2,3)->select();

取数据总条数count 需写在最后
$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");

TP框架也支持原生sql语句 查询用query
$sql="select * from info where Nation='n001'";
$attr=$m->query($sql);

增删改用execute方法
$sql="insert into nation values('n009','神族')";
$attr=$m->execute($sql);
var_dump($attr);

【除了select find count聚合函数外 都是支持连贯操作的方法】

 

实例:在控制器的方法中查询好信息 然后在模板页面显示

$attr=$m->field("info.Code,info.Name,sex,nation.Name as nationname,birthday")->join("nation on info.Nation=nation.Code")->select();
$this->assign("info",$attr);
$this->display();

   注意:这里的是标签                                     



<{$v.code}>        要小写
<{$v.name}>
<{$v["sex"]?"男":"女"}>    处理性别  TP框架支持三元运算符  使用三元运算符时&#xff0c;不支持 . 语法
<{$v.nationname}>   处理民族  在查询的时候使用join
<{$v.birthday}>

 

 判断是不能出现>或< 要有gt lt 代替
yes

no

 

转:https://www.cnblogs.com/hamilton/p/5723109.html



推荐阅读
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 使用HTML和JavaScript实现视频截图功能
    本文介绍了如何利用HTML和JavaScript实现从远程MP4、本地摄像头及本地上传的MP4文件中截取视频帧,并展示了具体的实现步骤和示例代码。 ... [详细]
  • 解决Unreal Engine中UMG按钮长时间按住自动释放的问题
    本文探讨了在Unreal Engine中使用UMG按钮时,长时间按住按钮会导致自动释放的问题,并提供了详细的解决方案。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 本文介绍 DB2 中的基本概念,重点解释事务单元(UOW)和事务的概念。事务单元是指作为单个原子操作执行的一个或多个 SQL 查询。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文将深入探讨 iOS 中的 Grand Central Dispatch (GCD),并介绍如何利用 GCD 进行高效多线程编程。如果你对线程的基本概念还不熟悉,建议先阅读相关基础资料。 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • VB.net 进程通信中FindWindow、FindWindowEX、SendMessage函数的理解
    目录一、代码背景二、主要工具三、函数解析1、FindWindow:2、FindWindowEx:3、SendMessage: ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
author-avatar
奶油泡芙2覀21
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有