首先,新建乙個名為thinkphp
的資料庫,裡面新建一張表,名為think_user
。欄位有:id、user、email、date。
thinkphp內建了抽象資料庫訪問層,把不同的資料庫操作封裝起來,我們只需要使用公共的db類進行操作。無需針對不同的資料庫寫不同的**和底層實現,db類會自動呼叫相應的資料庫驅動來處理。
目前支援:mysql(包含mysqli)、sqlserver、pgsel、sqlite、oracle、ibase、mongo、pdo等。
連線資料庫
//mysql全域性配置定義
'db_type'=>'mysql',
'db_host'=>'localhost',
'db_user'=>'root',
'db_pwd'=>'root',
'db_name'=>'thinkphp',
'db_port'=>3306,
'db_prefix'=>'think_',
pdo方式:
'db_type'=>'mysql',
'db_host'=>'localhost',
'db_name'=>'thinkphp',
'db_user'=>'root',
'db_pwd'=>'root',
'db_prefix'=>'think_',
'db_dsn'=>'',
例項化模型
連線上資料庫後,我們需要從資料庫裡運算元據,就需要例項化模型類。tp中,提供了model基類處理,也可以使用m()
方法。
比如基於usercontroller.class.php
控制器:
<?php
namespace
home\controller;
usethink\controller;
usethink\model;
class
usercontroller
extends
controller
public
function
model
()}
model基類可以傳遞三個引數:
model([『模型名』],[『資料表字首』],[『資料庫連線資訊』]);
例項化model類,改變表字首
$user = new model('user','tp_');//是錯的。
例項化model類,定義資料庫連線資訊
$user = new model('user','think_','mysql://root:root@localhost/thinkphp');
thinkphp除錯工具,可以放在配置欄開啟:
'show_page_trace'=>true,
m()方法
使用model基類還需要匯入命名空間,而使用m()方法,則不需要。
例項化model類
<?php
namespace
home\controller;
usethink\controller;
// use home\model\usermodel;
//use think\model;
class
usercontroller
extends
controller
public
function
model
()}
d()方法
如果僅僅是使用增刪改查,那基於model的m()方法就夠用了。
如果有必要使用具體的模型類時,建議使用d()方法來例項化模型類。
<?php
namespace
home\controller;
usethink\controller;
usehome\model\usermodel;
//use think\model;
class
usercontroller
extends
controller
public
function
model
()}
字段定義
每個模型類操作每個對應資料表,大多數情況下系統會自動獲取當前資料表的字段資訊。當模型類第一次例項化時,系統會自動快取字段,並且永久快取,除非刪除執行時快取或者設定不快取。
這樣的好處是可以快速響應。tp中預設開啟字段快取。
字段快取檔案儲存在runtime/data/_fields
目錄裡。開發階段,建議關閉快取。方法為:
//關閉快取字段
'db_fields_cache'=>fasle, //開啟除錯模式會自動關閉
ps:如果開啟了快取狀態,新增了字段,那可能新字段無法重新整理出來,必須刪除/data/_fields
資料夾,重新獲取字段。
//檢視字段結構
var_dump($user->getdbfields());
模型例項化 thinkphp
當定義了模型之後,需要在操作中將模型例項化才能具體實現模型中的業務邏輯。不同的資料業務規則會有不同的模型定義,而在例項化模型的時候也可能不同。thinkphp 支援如下幾種例項化模型 例項化基礎模型類 例項化其他模型類 例項化使用者自定義模型類 例項化空模型類 thinkphp支援在沒有定義任何模型...
ThinkPHP 例項化模型
1.例項化基本模型 user new model s 引數為 表名,表字首,資料庫連線資訊 後2個已經在config.php中設定 user m s m方法 效果和new model相同 引數相同 data user select dump data 2.例項化使用者自定義模型 user new a...
ThinkPHP關聯模型詳解
在thinkphp中,關聯模型更類似一種mysql中的外來鍵約束,但是外來鍵約束更加安全,缺點卻是在寫sql語句的時候不方便,thinkphp很好得解決了這個問題.但是很多人不動關聯模型的意思.現在就寫個例子.讓大家理解thinkphp關聯模型的意思.環境描述 公司有乙個員工表think user,...