新建模型
有兩個方法:
一個是手動創建
1、新建model文件夾
2、新建文件user.php。最好名字和表名對應
3、寫代碼
立即學習“PHP免費學習筆記(深入)”;
<?php namespace appindexmodel; use thinkModel; class User extends Model { //如果表名和文件名不是對應的,用下面代碼修改 protected $table = 'think_user'; }
第二個是用命令:
>php?think?make:model?index/Blog
模型實例化
有三種方式:
1、用靜態方法
use?appindexmodelUser; ?$li=?User::get(1);
2、用加載類
use?thinkLoader; $user=?Loader::model('user'); ?$li=?$user::get(1);
3、用系統方法
$user=?model('User'); ?$li=?$user::get(1);
數據庫的查詢操作
get的意思是,查詢主鍵為1的數據。后面是查詢name=thinkphp的數據
//取出主鍵為1的數據 $user?=?User::get(1); //?使用數組查詢 $user?=?User::get(['name'?=>?'thinkphp']);
也可以使用系統查詢方法
$user?=?new?User(); $user->where('name',?'thinkphp')->find();
查詢多條數據
用all()方法
//?根據主鍵獲取多個數據 $list?=?User::all('1,2,3'); //?或者使用數組 $list?=?User::all([1,2,3]); foreach($list?as?$key=>$user){ ????echo?$user->name; } //?使用數組查詢 $list?=?User::all(['status'=>1]); //?使用閉包查詢 $list?=?User::all(function($query){ ????$query->where('status',?1)->limit(3)->order('id',?'asc'); }); foreach($list?as?$key=>$user){ ????echo?$user->name; }
或者用查詢方法查看
$user?=?new?User(); //?查詢數據集 $user->where('name',?'thinkphp') ????->limit(10) ????->order('id',?'desc') ????->select();
查詢某個字段值
//?獲取某個用戶的積分 User::where('id',10)->value('score'); //?獲取某個列的所有值 User::where('status',1)->column('name'); //?以id為索引 User::where('status',1)->column('name','id'); User::where('status',1)->column('id,name');
也可以用動態查詢
//?根據name字段查詢用戶 $user?=?User::getByName('thinkphp'); //?根據email字段查詢用戶 $user?=?User::getByEmail('thinkphp@qq.com');
數據新增
用save方法
$user???????????=?new?User; $user->name?????=?'thinkphp'; $user->email????=?'thinkphp@qq.com'; $user->save();
用data批量方法保存
$user?=?new?User; $user->data([ ????'name'??=>??'thinkphp', ????'email'?=>??'thinkphp@qq.com' ]); $user->save();
最常用的是實例化的時候導入post或者get數據,然后保存保存##我是感覺這里比較重要
//如果需要過濾非數據表字段的數據,可以使用: $user?=?new?User($_POST); //?過濾post數組中的非數據表字段數據 $user->allowField(true)->save(); //如果你通過外部提交賦值給模型,并且希望指定某些字段寫入,可以使用: $user?=?new?User($_POST); //?post數組中只有name和email字段會寫入 $user->allowField(['name','email'])->save();
獲取插入數據id
$user???????????=?new?User; $user->name?????=?'thinkphp'; $user->email????=?'thinkphp@qq.com'; $user->save(); //?獲取自增ID echo?$user->user_id;
插入多條數據
$user?=?new?User; $list?=?[ ????['name'=>'thinkphp','email'=>'thinkphp@qq.com'], ????['name'=>'onethink','email'=>'onethink@qq.com'] ]; $user->saveAll($list);
也可以使用助手函數
//?使用model助手函數實例化User模型 $user?=?model('User'); //?模型對象賦值 $user->data([ ????'name'??=>??'thinkphp', ????'email'?=>??'thinkphp@qq.com' ]); $user->save(); 或者進行批量新增: $user?=?model('User'); //?批量新增 $list?=?[ ????['name'=>'thinkphp','email'=>'thinkphp@qq.com'], ????['name'=>'onethink','email'=>'onethink@qq.com'] ]; $user->saveAll($list);
數據刪除,需要先查詢,再刪除
刪除一條
$user?=?User::get(1); $user->delete();
刪除多條
User::destroy(1); //?支持批量刪除多個數據 User::destroy('1,2,3'); //?或者 User::destroy([1,2,3]);
根據條件刪除
//?刪除狀態為0的數據 User::destroy(['status'?=>?0]); 還支持使用閉包刪除,例如: User::destroy(function($query){ ????$query->where('id','>',10); }); 或者通過數據庫類的查詢條件刪除 User::where('id','>',10)->delete();
數據更新,需要先查詢,再更新
$user?=?User::get(1); $user->name?????=?'thinkphp'; $user->email????=?'thinkphp@qq.com'; $user->save();
根據條件更新
$user?=?new?User; //?save方法第二個參數為更新條件 $user->save([ ????'name'??=>?'thinkphp', ????'email'?=>?'thinkphp@qq.com' ],['id'?=>?1]);
post提交直接更新
$user?=?new?User(); //?過濾post數組中的非數據表字段數據 $user->allowField(true)->save($_POST,['id'?=>?1]); //如果你通過外部提交賦值給模型,并且希望指定某些字段寫入,可以使用: $user?=?new?User(); //?post數組中只有name和email字段會寫入 $user->allowField(['name','email'])->save($_POST,?['id'?=>?1]);
強制更新,防止添加
$user?=?new?User; $list?=?[ ????['id'=>1,?'name'=>'thinkphp',?'email'=>'thinkphp@qq.com'], ????['id'=>2,?'name'=>'onethink',?'email'=>'onethink@qq.com'] ]; $user->isUpdate()->saveAll($list);
用數據庫類添加
$user?=?new?User; $user->where('id',?1) ????->update(['name'?=>?'thinkphp']); 或者使用: $user?=?new?User; $user->update(['id'?=>?1,?'name'?=>?'thinkphp']);
推薦教程:《TP5》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦