TP框架有一套自己的数据库操作的代码,包括数据库的增、删、改、查。本文主要讲解TP框架的数据库查询操作。

找到入口文件的控制器:

我这里的入口文件是Show文件夹下的控制器。

打开Login控制器。

代码写在index方法中。

数据库的定义方式有三种。

前两种要写模型函数,最后一种不需要。

模型的例子(放在Model文件夹下,名字与类名相同,本例的名字:UserModel.class.php)

<?php
namespace Admin\Model;
use Think\Model;
class UserModel extends Model
{ }

方法一:

$user = new \Admin\Model\UserModel();   //表名为user,大小写一致。
$at = $user->select(); //查询此表的所有数据。
var_dump($at); //显示数据

显示结果:

方法二:

$user= D("user");
$at = $user->select();
var_dump($at);

 此方法可自动找到此命名空间中的对应模型,效果与第一种相同。

方法三(此方法不用创建模型文件,自动造模型):

$user= M("user");                 //自动造模型
$at = $user->select();
var_dump($at);

效果与以上两种相同。

数据库查找:

首先造模型:

$user= M("user");

  

查询数据(所有):

$at = $user->select();
var_dump($at);

查一条数据:

$at = $user->find("admin");      //根据主键值admin查找一条数据
var_dump($at);

结果:

只会显示一条数据。

条件查询:

$at = $user->where("uid='admin'")->select();    //查找uid为admin的数据
var_dump($at);

  

结果:

切换数据表:

$at = $user->table("nation")->select();   //切换表名为nation的表进行操作。

 

选择操作的字段:

$at = $user->field("uid,name,pwd")->select();     //只显示uid,name,pwd字段
var_dump($at);

  

排序:

$at = $user->order("code desc")->select();    //根据code降序排列
var_dump($at);

  

分页:

$at = $user->limit("4,2")->select();     //跳过四条数据,显示接下来的两天数据。
$at = $user->page("3,2")->select(); //每页两条数据,显示第3页。

  

分组:

//根据classcode分组,查询每组code最大的数据。
$at = $user->field("max(code)")->group("classcode")->select();
var_dump($at);

//根据classcode分组,查询每组code最大且大于2017000000的数据。
$at = $user->field("max(code)")>group("classcode")>having("max(code)>2017000000")->select(); 
var_dump($at);

  

连接查询:

$at = $user->field("user.code as '代号', user.name as '姓名',nation.name as '班级'")->join("nation on user.code=nation.code")->select();

注意:

user.code as '代号', user.name as '姓名',nation.name as '班级' 是一定要写的,不然会出现查询字段显示不匹配。

去重:
$at = $user->distinct(true)->field("pwd")->select();
var_dump($at);

 


 

ThinkPhp框架的数据库操作(查询)的更多相关文章

  1. ThinkPHP框架模型连贯操作(八)

    原文:ThinkPHP框架模型连贯操作(八) Thinkphp的连贯操作使用起来也是很灵活: *可能这里有的mysql函数没全部罗列出来,大家可以举一反三,形式雷同 一.常用连贯操作 1.where ...

  2. ThinkPhp框架对“数据库”的基本操作

    框架有时会用到数据库的内容,在"ThinkPhp框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下. 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是 ...

  3. PHP之ThinkPHP框架(数据库)

    PHP是网站后台开发语言,其重要的操作对象莫过于数据库,之前有了解过mysqli和pdo,但ThinkPHP的数据库交互必须使用其特定的封装方法,或者可以认为其是对PHP数据库操作的进一步封装,以达到 ...

  4. java之Hibernate框架实现数据库操作

    之前我们用一个java类连接MySQL数据库实现了数据库的增删改查操作---------MySQL篇: 但是数据库种类之多,除了MySQL,还有Access.Oracle.DB2等等,而且每种数据库语 ...

  5. 018.CI4框架CodeIgniter数据库操作之:Delete删除一条数据

    01. 在Model中写数据库操作语句,代码如下: <?php namespace App\Models\System; use CodeIgniter\Model; class User_mo ...

  6. 017.CI4框架CodeIgniter数据库操作之:Updata更新修改一条数据

    01. 在Model中写入数据库操作的代码如下: <?php namespace App\Models\System; use CodeIgniter\Model; class User_mod ...

  7. 015.CI4框架CodeIgniter数据库操作之:Query带参数查询数

    01.我们在Models中写数据库的操作.具体的查询代码如下: <?php namespace App\Models\System; use CodeIgniter\Model; class U ...

  8. Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']

    public function getMinLimit () {        $sql = "...";        $result = yii::app()->db-& ...

  9. 014.CI4框架CodeIgniter数据库操作之:查询数据库,并让数据以对象的方式返回查询结果

    01. 我们在CI4框架中的Model文件夹新建一个User_model.php的文件,使用的是getResultArray,表示并让数据以数组的方式返回查询结果,代码如下: <?php nam ...

随机推荐

  1. 【angularjs】【学习心得】路由实战篇

    今天还是来说一下angular中的路由模块.我们实际项目中,各个页面的切换是经常会与Auth相关的.比如我网站的后台,是需要登录过的用户才能进去,那么我们用angularJS做前端路由的时候应该怎么完 ...

  2. 在Unity3D中实现安卓平台的本地通知推送

    [前言] 对于手游来说,什么时候需要推送呢?玩过一些带体力限制的游戏就会发现,我的体力在恢复满后,手机会收到一个通知告诉我体力已完全恢复了.这类通知通常是由本地的客户端发起的,没有经过服务端. 在安卓 ...

  3. 客户端禁用cookie情况下的URL重写

    客户端禁用cookie情况下的URL重写: servlet: package com.stono.servlet.listenerorder; import java.io.IOException; ...

  4. WebRTC VoiceEngine使用简单Demo

    Google收购的GIPS公司的音频处理技术是很牛的,现在开源了,这么好的技术应该拿来用的,这里就简单的介绍一下怎样使用VoiceEngine,欢迎大家拍砖指导. WebRTC相关的VideoEngi ...

  5. RabbitMQ小白菜学习之在window下的安装配置

    RabbitMQ安装 首先需要下载RabbitMQ的平台环境Erlang OTP平台和RabbitMQ Server(windows版): OTP 19.1 Windows 64-bit Binary ...

  6. GCD简介

    什么是GCD 全称是Grand Central Dispatch,可译为"牛逼的中枢调度器" 纯C语言,提供了非常多强大的函数   GCD的优势 GCD是苹果公司为多核的并行运算提 ...

  7. Linux下tomcat的安装与项目部署

    最近在linux下安装了jdk,为了圆我以前的心愿,把tomcat也安装了,顺便部署个项目,也算是小又成就感 废话不说了,直接上过程 一.下载安装对应的jdk,并配置Java环境. 有关jdk的安装请 ...

  8. SpringBoot 入门教程:集成mybatis,redis

    SrpingBoot相较于传统的项目具有配置简单,能快速进行开发的特点,花更少的时间在各类配置文件上,更多时间在具体业务逻辑上. SPringBoot采用纯注解方式进行配置,不喜欢xml配置的同学得仔 ...

  9. Yii框架中的form表单

    <?php//引入命名空间use yii\helpers\Html;?><?php //表单:Html::beginForm(提交地址,提交方法,属性数组);?><?=H ...

  10. POJ 1308 Is It A Tree?--题解报告

    Is It A Tree? Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 31092   Accepted: 10549 D ...