刪除操作指對數據表的單個記錄或者多個記錄的刪除操作,示例代碼如下:
// 刪除數據
Db::name('data')
->where('id', 18)
->delete();
和更新操作一樣,ThinkPHP不允許使用無條件刪除操作,如果不帶條件可以直接使用主鍵刪除:
// 刪除數據
Db::name('data')
->delete(18);
// 刪除多條數據
Db::name('data')
->delete([1, 5, 8]);
如果你確定要執行無條件刪除操作, 可以使用下面的方式:
// 刪除所有數據
Db::name('data')
->delete(true);
事實上,對於業務數據表,基本上不建議使用刪除操作,而是使用軟刪除(邏輯刪除,其實執行的是數據表的更新操作)替代實際的物理刪除。
掌握了基本的CURD操作後,我們就來熟悉下鏈式方法的概念,其實就是前面我們提到的輔助查詢方法。首先鏈式方法的目的是為了讓查詢更清晰和直觀,下面的兩個代碼實現哪個更清晰易懂大家可以比較下。
上面兩個查詢最終生成的SQL語句是完全相同的。但下面兩個查詢最終生成的SQL是不同的
多個where方法和order方法的調用順序最終影響了生成的SQL語句,雖然有時候並不會影響查詢結果。上面的兩個例子where方法的順序並不會影響查詢條件,而order方法的順序則改變了最終數據的排序。鏈式方法的調用順序取決於你的思維習慣或者說團隊規範。