刪除 WordPress 資料庫中的資料
在 WordPress 開發中,刪除資料庫中的資料是插件和主題開發中的常見需求。$wpdb->delete()
是 WordPress 提供的一個方便的方法,用於從指定的資料庫表格中刪除資料。在本節課中,我們將學習如何使用 $wpdb->delete()
來刪除資料庫中的資料,並通過 RESTful API 來接收和處理用戶提交的刪除請求。
$wpdb->delete()
的基本概念
$wpdb->delete()
方法允許您從資料庫表格中刪除資料。這個方法接受兩個主要參數:
- 第一個參數是表格名稱。
- 第二個參數是一個關聯陣列,用於指定刪除操作的條件,鍵是資料表的欄位名稱,值是要匹配的條件值。
使用 $wpdb->delete()
刪除指定資料列
我們將通過以下步驟來實現透過 RESTful API 接收資料並將其從資料庫中的指定資料列中刪除。在這個範例中,我們將刪除 iot_device
資料表中 id
匹配的資料列。
- 範例代碼:
function delete_device_api($request) { // 獲取 WordPress 資料庫全域物件 global $wpdb; // 檢查是否存在必要的參數 if (!isset($request["id"])) { return new WP_REST_Response( array( 'code' => 400, 'message' => 'Missing Parameter', 'data' => null ), 200 ); } else { // 使用 $wpdb->delete() 方法刪除資料表中的資料 $wpdb->delete( "iot_device", // 資料表名稱 array( "id" => $request["id"], // 用於匹配的條件 ) ); // 返回成功回應 return new WP_REST_Response( array( 'code' => 200, 'message' => 'Success', 'data' => null ), 200 ); } }
代碼解釋:
global $wpdb;
:這行代碼引入 WordPress 全域資料庫物件$wpdb
,以便使用其中的資料庫操作方法。if (!isset($request["id"]))
:這行代碼檢查請求中是否包含id
參數,該參數用於指定要刪除的資料列。如果沒有提供id
,將返回錯誤回應。$wpdb->delete("iot_device", array("id" => $request["id"]));
:這行代碼使用$wpdb->delete()
方法從iot_device
資料表中刪除id
匹配的資料列。- 第一個參數是表格名稱。
- 第二個參數是一個關聯陣列,指定刪除操作的條件,即
id
必須與請求中提供的id
值匹配。
new WP_REST_Response(...)
:這段代碼返回 API 請求的回應,包含狀態碼和訊息。
測試刪除資料的 RESTful API 端點
完成代碼後,您可以通過 Postman 或其他 API 測試工具來測試這個端點。
- 測試步驟:
- 打開 Postman。
- 設置請求方法為 DELETE,URL 為
http://yourdomain.com/wp-json/iot/v1/device/
。 - 在請求體中使用
x-www-form-urlencoded
或raw
(JSON) 格式,並提供以下參數:id
:要刪除的設備的 ID。
- 發送請求並檢查回應,您應該會看到成功刪除資料的回應信息。
- 使用資料庫管理工具(如 phpMyAdmin)檢查
iot_device
資料表,確認指定id
的資料列是否已成功刪除。