thinkphp建立對象及數據操做

ThinkPHP有三種建立控制器對象的方式:sql

  1. 經過命名空間的路徑找到類而後new出來例如:$dx = new \Home\Controller\IndexController();
  2. 經過A快捷函數建立對象A("模塊/控制器")例如: $dx = A("Home\Index");
  3. 經過R快捷函數建立對象並調用方法;R("Index/ShuChu")

ThinkPHP操做數據庫:數據庫

首先須要在配置文件中配置數據庫信息數組

在建立模型對象執行sql語句函數

建立模型對象有三種方式:this

  1. 原始方式須要模型中建模型類,類名必須是數據庫表名,例如:$m = new \Home\Model\InfoModel();
  2. 使用快捷函數D:$m = D("Info");須要注意的是若是沒有模型類能夠不加參數,對象就是model父類的對象

  三、使用快捷函數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>

相關文章
相關標籤/搜索