ThinkPhp框架的数据库操作(查询)
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框架的数据库操作(查询)的更多相关文章
- ThinkPHP框架模型连贯操作(八)
		原文:ThinkPHP框架模型连贯操作(八) Thinkphp的连贯操作使用起来也是很灵活: *可能这里有的mysql函数没全部罗列出来,大家可以举一反三,形式雷同 一.常用连贯操作 1.where ... 
- ThinkPhp框架对“数据库”的基本操作
		框架有时会用到数据库的内容,在"ThinkPhp框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下. 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是 ... 
- PHP之ThinkPHP框架(数据库)
		PHP是网站后台开发语言,其重要的操作对象莫过于数据库,之前有了解过mysqli和pdo,但ThinkPHP的数据库交互必须使用其特定的封装方法,或者可以认为其是对PHP数据库操作的进一步封装,以达到 ... 
- java之Hibernate框架实现数据库操作
		之前我们用一个java类连接MySQL数据库实现了数据库的增删改查操作---------MySQL篇: 但是数据库种类之多,除了MySQL,还有Access.Oracle.DB2等等,而且每种数据库语 ... 
- 018.CI4框架CodeIgniter数据库操作之:Delete删除一条数据
		01. 在Model中写数据库操作语句,代码如下: <?php namespace App\Models\System; use CodeIgniter\Model; class User_mo ... 
- 017.CI4框架CodeIgniter数据库操作之:Updata更新修改一条数据
		01. 在Model中写入数据库操作的代码如下: <?php namespace App\Models\System; use CodeIgniter\Model; class User_mod ... 
- 015.CI4框架CodeIgniter数据库操作之:Query带参数查询数
		01.我们在Models中写数据库的操作.具体的查询代码如下: <?php namespace App\Models\System; use CodeIgniter\Model; class U ... 
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
		public function getMinLimit () { $sql = "..."; $result = yii::app()->db-& ... 
- 014.CI4框架CodeIgniter数据库操作之:查询数据库,并让数据以对象的方式返回查询结果
		01. 我们在CI4框架中的Model文件夹新建一个User_model.php的文件,使用的是getResultArray,表示并让数据以数组的方式返回查询结果,代码如下: <?php nam ... 
随机推荐
- Hybird应用开发实践(一)使用原生/cordova混合项目
			最近准备尝试hybird开发原生应用,因为公司的项目本来就是原生开发的,所以准备选择cordova作为webview嵌入原生项目的开发方式.这里就以mac上整合ios项目为例. 1. 创建cordov ... 
- pureMVC简单示例及其原理讲解一(开篇)
			pureMVC是一个MVC框架,皆在最大限度的减少MVC间的耦合性.本人刚刚接触pureMVC时感到一头雾水,不知从何入手,也不知道从何学习.好在本人有耐性且能看懂英文技术文档,面向对象的编程能力也比 ... 
- 固定表头带滚动条的HTML表格
			http://blog.csdn.net/daryl715/article/details/1883677 <html> <head> </head> <BO ... 
- java二维码生成-谷歌(Google.zxing)开源二维码生成学习及实例
			java二维码生成-谷歌(Google.zxing)开源二维码生成的实例及介绍 我们使用比特矩阵(位矩阵)的QR码编码在缓冲图片上画出二维码 实例有以下一个传入参数 OutputStream ou ... 
- oracle decode函数的用法
			含义解释: decode(字段,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 用法如下:IF 字段=值1 返回 返回值1ELSIF 字段=值2 返回 返回值2 ......ELSIF ... 
- Omi教程-使用group-data通讯
			写在前面 Omi框架组建间的通讯非常遍历灵活,上篇文章介绍了几种通讯方式,其中childrenData的方式可以批量传递数据给组件,但是有很多场景下data的来源不一定非要都从childrenData ... 
- tomcat的配置
			配置tomcat需要 先下载JDK JDE配置环境http://jingyan.baidu.com/article/870c6fc33e62bcb03fe4be90.htmlXML配置 路径——> ... 
- PHP中的 !== 与 !=
			'==' 比较两边的值是否相等,会自动转换类型: '===' 则会严格比较类型是否相同,如果类型不相同,直接返回false. 例如:'123' === 123 // => false '!=' ... 
- H5中背景音乐无法自动播放问题
			苹果禁止了Autoplay和JS "onload" 加载播放,使在html文件里使用了preload和autoplay属性,在移动版 Safari 上,此属性会被忽视,并且不会加载 ... 
- 设置Image渲染模式使用TintColor
			通过使用控件Tint Color,例如UIImageView,UIButton等 设置UIImage的渲染模式,使你用一张图片可以渲染成不同颜色,例如设置UIImage的渲染模式:UIImage.re ... 
