學習ThinkPHP的第20天

之因此從20天才開始寫隨筆記是由於以前沒搞本身的博客數據庫

從20天開始記錄我在ThinkPHP中的點點滴滴this

一、MySQL事務操做

 
/**事務操做*/
//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 "交易失敗!!!";
}
 

二、ThinkPHP查詢事件

 //在執行數據庫操做觸發的事件,如在查詢數據前插入一條數據
        //一、查詢前回調: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);*/
}

三、ThinkPHP關聯數據庫操做

  一對一關聯(正向關聯):

    1)關聯查詢

      模型中的方法: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."班";
}

    2)關聯添加數據

public function join(){
//實例化教師表
        $teacher = new Teacher;
        //教師表數據
        $tDate = [
            "name" => "王富貴"
        ];

        //班級表數據
        $gDate = [
            "Grade" => [
                'id' => '1704',
                'name' => '電商'
            ]
        ];
        $teacher->together($gDate)->save($tDate);
}

    3)關聯更新數據

public function join(){
$teacher = Teacher::get(4);
        $teacher->name = "二哈";
        //更新班級數據
        $teacher->grade->name = '軟件1701';
        $teacher->together('grade')->save();
}

    4)關聯刪除數據

public function join(){
$teacher = Teacher::get(4);
        $teacher->delete(); //刪除老師數據
        $teacher->grade->delete(); //刪除班級數據
}
相關文章
相關標籤/搜索