ThinkPHP有三種建立控制器對象的方式:sql
ThinkPHP操做數據庫:數據庫
首先須要在配置文件中配置數據庫信息數組
在建立模型對象執行sql語句函數
建立模型對象有三種方式:this
三、使用快捷函數M:$m = M("Nation");spa
操做數據庫:code
首先介紹一下連貫函數,就是返回值是:$this,也就是說返回自身對象,能夠繼續調用函數對象
數據庫操做中基本的函數:select("主鍵值【,主鍵值】")、find("主鍵值"),聚合函數不是連貫函數。排序
具體用法以下以下:(能夠參考手冊)ci
操做數據庫
$attr = $m->select(); //查詢全部數據
$attr = $m->select("p001,p002,p003");
$attr = $m->find("p001"); //找特定的數據根據主鍵值找
where能夠加查詢條件
$attr = $m->where("code='p001' or sex=true")->select();
table能夠切換要操做的表
$attr = $m->table("Nation")->select();
alias能夠設置表的別名
$attr = $m->alias("人員")->select();
field能夠指定查詢的字段
$attr = $m->field("code,name")->select();
order能夠加排序條件
$attr = $m->order("Nation desc")->select();
group能夠分組
$attr = $m->field("Nation")->group("Nation")->select();
having能夠加分組後的條件
$attr = $m->field("Nation")->group("Nation")->having("count(*)>5")->select();
join能夠鏈接多個表,在field裏面要給字段加別名
$attr = $m->field("Info.Code as 代號,Info.Name as 姓名,Sex as 性別,Nation.Name as 民族名稱")->join("Nation on Info.Nation = Nation.Code")->select();
union聯合查詢
$attr = $m->field("name")->union("select name from nation")->select();
distinct去重
$attr = $m->field("Nation")->distinct(true)->select();
limit能夠分頁,參數第一個表明跳過多少條,第二個表明取多少條
$attr = $m->limit(10,5)->select();
page能夠分頁。第一個參數表明是當前頁,第二個參數表明每頁多少條
$attr = $m->page(3,5)->select();
取數據總條數
$attr = $m->count("*");
取某一列的和
$attr = $m->table("Car")->sum("Price");
取平均值
$attr = $m->table("Car")->avg("Price");
取最大值
$attr = $m->table("Car")->max("Price");
取最小值
$attr = $m->table("Car")->min("Price");
$sql = "select * from Info where Nation='n001'";
$attr = $m->query($sql);
$sql = "insert into Nation values('n104','按實際')";
$attr = $m->execute($sql);
$attr = $m->field("Info.Code as code,Info.Name as name,sex,Nation.Name as nationname,birthday")->join("Nation on Info.Nation = Nation.Code")->select();
$this->assign("info",$attr);
$this->assign("test",10);
$this->display();
ThinkPHP內置標籤
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代號</td>
<td>姓名</td>
<td>性別</td>
<td>民族</td>
<td>生日</td>
</tr>
<foreach name="info" item="v" > //name是傳過來的名字,item是數組元素
<tr>
<td><{$v.code}></td>
<td><{$v.name}></td>
<td><{$v["sex"]?"男":"女"}></td> //三目運算符不支持點操做
<td><{$v.nationname}></td>
<td><{$v.birthday}></td>
</tr>
</foreach>
</table>
<if condition="$test gt 10"> //condition是條件,由於是標籤爲了防止歧義用備用詞
hello 5
<else />
hello 10
</if>