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 ...
随机推荐
- Delphi总结使用TStrings的一些技巧
[delphi] view plaincopyprint? 先把要讨论的几个属性列出来: 1.CommaText 2.Delimiter & DelimitedText 3.Names &am ...
- C++中lower_bound函数和upper_bound函数
STL中关于二分查找的函数有三个lower_bound .upper_bound .binary_search .这三个函数都运用于有序区间(当然这也是运用二分查找的前提),下面记录一下这两个函数. ...
- easyUI progressbar组件
easyUI progressbar组件: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- 创建 OVS vlan101 并部署 instance - 每天5分钟玩转 OpenStack(139)
前面我们创建了 OVS vlan100 并部署了 instance,今天继续创建 vlan101. subnet IP 地址为 172.16.101.0/24. 底层网络发生了什么变化 Neutron ...
- [CSS3] 学习笔记-选择器详解(二)
1.选择器first-child.last-child.nth-child和nth-last-child 利用first-child.last-child.nth-child和nth-last-chi ...
- Yii框架中的form表单
<?php//引入命名空间use yii\helpers\Html;?><?php //表单:Html::beginForm(提交地址,提交方法,属性数组);?><?=H ...
- .NET 即时通信,WebSocket服务端实例
即时通信常用手段 1.第三方平台 谷歌.腾讯 环信等多如牛毛,其中谷歌即时通信是免费的,但免费就是免费的并不好用.其他的一些第三方一般收费的,使用要则限流(1s/限制x条消息)要么则限制用户数. 但稳 ...
- Eval与Bind的区别
bind和eval都是ASP.NET中的函数,而且都有对将数据获取到Html中的功能.那么,它们在使用的时候有什么区别呢?在我们编程的时候,在某种情况下,用哪个函数更加合适呢? 区别 用法: 1. b ...
- RejectedExecutionException 分析
当往一个固定队列ArrayBlockingQueue 不停的提交任务时,会发生什么? 请看如下代码 private static final int QUEUE_SIZE = 20; private ...
- JavaScript null 和 undefined
null null 表示一个变量被声明了,并被赋值为空 var lzh = null; console.log(lzh); // null console.log(typeof lzh); // ob ...