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);