之因此從20天才開始寫隨筆記是由於以前沒搞本身的博客數據庫
從20天開始記錄我在ThinkPHP中的點點滴滴this
/**事務操做*/ //startTrans啓動事務、rollback回調、commit提交 //使用場景:交易系統 Db::startTrans(); $row = Db::name("users")->dec('count',50)->where('userID',28)->update(); if($row !== false){ $row1 = Db::name("users")->inc('count',50)->where('userID',13)->update(); if($row1!==false){ $result = Db::name("users")->field('count')->where('userID',28)->find(); if ($result['count']>=0){ Db::commit();//提交事務,交易成功 echo "交易成功!!!"; }else{ Db::rollback(); echo "交易失敗,您的餘額已不足請及時充值!!!"; } }else{ Db::rollback();//回調,交易失敗 echo "交易失敗!!!"; } }else{ Db::rollback();//交易失敗 echo "交易失敗!!!"; }
//在執行數據庫操做觸發的事件,如在查詢數據前插入一條數據 //一、查詢前回調:before_select 、before_find //二、插入成功後回調:after_insert //三、更新成功後回調:after_update //四、刪除成功後回調:after_delete // 註冊一個事件,查詢以前調用add方法 Db::event('before_select',[$this,'add']); $data = Db::name("users")->select(); dump($data);
// add方法
public function add(){
$date = [
'userName' => '小銘',
'password' => 'MingGyGy'
];
$siz = Db::name("users")->insert($date);
dump($siz);
/*$result = Db::name("users")->data($date)->where("userID","=",21)->update();
dump($result);*/
}
模型中的方法:spa
//定義一個關聯方法 使用對應的模型名稱 對應的表名稱 public function grade(){ /** * // hasOne()方法 * 第一個參數是須要關聯的模型名稱 * 第二個參數是關聯外鍵名稱 默認爲:表名_id * 第三個參數是當前主鍵名稱 默認自動獲取,也可手動設置 */ return $this->hasOne('Grade'); }
控制器中的方法:code
public function join(){ $teache = Teacher::get(1); //獲得教師表的對象 $grade = $teache->grade;//grade爲對應的模型方法 得到班級的對象 echo $teache->name."老師所帶的班級:".$grade->name.$grade->id."班"; }
public function join(){ //實例化教師表 $teacher = new Teacher; //教師表數據 $tDate = [ "name" => "王富貴" ]; //班級表數據 $gDate = [ "Grade" => [ 'id' => '1704', 'name' => '電商' ] ]; $teacher->together($gDate)->save($tDate); }
public function join(){ $teacher = Teacher::get(4); $teacher->name = "二哈"; //更新班級數據 $teacher->grade->name = '軟件1701'; $teacher->together('grade')->save(); }
public function join(){ $teacher = Teacher::get(4); $teacher->delete(); //刪除老師數據 $teacher->grade->delete(); //刪除班級數據 }