文章目錄(更新中…)
01 thinkphp6的前期開發準備《ThinkPHP6 入門到電商實戰》
02 控制器《ThinkPHP6 入門到電商實戰》
03 數據庫查詢、模型查詢、多庫查詢《ThinkPHP6 入門到電商實戰》
04 tp6 的查數據《ThinkPHP6 入門到電商實戰》
05 tp6 的數據添加《ThinkPHP6 入門到電商實戰》
06 tp6 的數據更新(改)及刪除 《ThinkPHP6 入門到電商實戰》
07查詢表達式 及 page分頁、order 排序《ThinkPHP6 入門到電商實戰》
08 獲取器 withAttr、多連綴、whereRaw、事務、數據集《ThinkPHP6 入門到電商實戰》
若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我,若你是真心學習可以送你書籍,指導你學習,給予你目標方向的學習路線,無套路,博客為證。
一、數據的更新
tp6 中更新可以使用 save 方法進行更新也可以使用 update 進行更新,在這里不對save 進行講解防止同學們對 save 的操作產生混亂,在這里主要介紹 update 方法的更新。
以下是 update 方法的官方手冊示例:
Db::name('user')->where('id', 1)->update(['name' => 'thinkphp']);
從示例中我們可以看到,使用 name 指定了要操作的表為 user ,where 用作指定條件,更新的數據是 id 為 1 的這一條,update 所傳入的數據為更新的數據值;那么此時若我們需要更新 student 表里面的數據代碼就可以寫成:
public function update(){$res=Db::name('student')->where('id', 1)->update(['height' => 169]);dump($res);
}
訪問該方法后結果為更新數如下:
最后查看數據庫內容已更新:
更新還可以直接傳入一個數組:
public function update(){$data=['height' => 173];$res=Db::name('student')->where('id', 1)->update($data);dump($res);
}
結果如下:
官方還給出了另外一種示例:
Db::name('user')
->where('id', 1)
->data(['name' => 'thinkphp'])
->update();
二、數據庫函數執行 exp 及 raw 方法更新
在更新數據時還可以通過 exp 執行sql數據庫函數,以下是官方所給出的示例使其內容轉換為大寫:
Db::name('user')->where('id',1)->exp('name','UPPER(name)')->update();
也可以通過 raw 方法對數據進行更新:
Db::name('user')->where('id', 1)->update(['name' => Db::raw('UPPER(name)'),'score' => Db::raw('score-3'),'read_time' => Db::raw('read_time+1')]);
例如給與一個數值減值某個數字加值等。
三、自增自減
自增自減官方手冊也提供了對應的方法:
// score 字段加 5
Db::table('think_user')->where('id', 1)->inc('score', 5)->update();
// score 字段減 5
Db::table('think_user')->where('id', 1)->dec('score', 5)->update();
四、數據刪除
數據刪除在日常中使用很謹慎,一般是通過更改狀態值來設置“刪除”狀態,下面給與官方示例說明:
Db::name('user')->delete(51);
以上代碼將會返回影響行數,不成功則為0。也可以寫成如下形式:
Db::name('user')->where('id', 47)->delete();
多條記錄刪除代碼如下:
Db::name('user')->delete([48,49,50]);