ThinkPhp框架的数据库操作(查询)
Posted 发瑞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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框架的数据库操作(查询)的主要内容,如果未能解决你的问题,请参考以下文章