当前位置:首页 > PHP

php rest delete 实现

2026-02-15 16:29:50PHP

实现 PHP RESTful DELETE 方法

在 PHP 中实现 RESTful DELETE 方法需要处理 HTTP DELETE 请求,并根据请求参数执行相应的删除操作。以下是一个完整的实现示例:

检查请求方法

通过 $_SERVER['REQUEST_METHOD'] 判断是否为 DELETE 请求:

if ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
    // 处理 DELETE 逻辑
}

获取请求数据

DELETE 请求通常通过 URL 参数或请求体传递数据:

parse_str(file_get_contents('php://input'), $deleteData);
$id = isset($_GET['id']) ? $_GET['id'] : ($deleteData['id'] ?? null);

数据库删除操作

假设使用 MySQLi 进行数据库操作:

$db = new mysqli('localhost', 'username', 'password', 'database');

$stmt = $db->prepare("DELETE FROM items WHERE id = ?");
$stmt->bind_param("i", $id);
$result = $stmt->execute();

返回响应

根据操作结果返回适当的 HTTP 状态码:

header('Content-Type: application/json');

if ($result) {
    http_response_code(204); // 成功无内容
    echo json_encode(['message' => 'Resource deleted']);
} else {
    http_response_code(404); // 未找到
    echo json_encode(['error' => 'Resource not found']);
}

完整示例代码

<?php
header('Content-Type: application/json');

if ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
    parse_str(file_get_contents('php://input'), $deleteData);
    $id = $_GET['id'] ?? $deleteData['id'] ?? null;

    if ($id) {
        $db = new mysqli('localhost', 'username', 'password', 'database');

        if ($db->connect_error) {
            http_response_code(500);
            echo json_encode(['error' => 'Database connection failed']);
            exit;
        }

        $stmt = $db->prepare("DELETE FROM users WHERE id = ?");
        $stmt->bind_param("i", $id);

        if ($stmt->execute()) {
            http_response_code(204);
        } else {
            http_response_code(404);
            echo json_encode(['error' => 'User not found']);
        }
    } else {
        http_response_code(400);
        echo json_encode(['error' => 'Missing ID parameter']);
    }
} else {
    http_response_code(405);
    echo json_encode(['error' => 'Method Not Allowed']);
}
?>

安全注意事项

  • 验证用户权限确保只有授权用户能执行删除
  • 使用预处理语句防止 SQL 注入
  • 考虑实现软删除而非物理删除
  • 记录删除操作日志

使用框架的实现

如果使用 Laravel 框架:

Route::delete('/users/{id}', function ($id) {
    $user = User::find($id);

    if ($user) {
        $user->delete();
        return response()->noContent();
    }

    return response()->json(['error' => 'User not found'], 404);
});

对于 Slim 框架:

php rest delete 实现

$app->delete('/users/{id}', function (Request $request, Response $response, array $args) {
    $id = $args['id'];
    // 删除逻辑
    return $response->withStatus(204);
});

标签: phprest
分享给朋友:

相关文章

git php实现

git php实现

Git 与 PHP 的集成实现 使用 PHP 执行 Git 命令 通过 PHP 的 exec()、shell_exec() 或 passthru() 函数可以直接调用 Git 命令,适用于服务器端操作…

php实现即时通讯

php实现即时通讯

PHP 实现即时通讯的方案 即时通讯(IM)可以通过多种方式实现,PHP 作为服务器端语言,通常需要结合前端技术(如 WebSocket、AJAX)或第三方服务来实现实时通信。以下是几种常见的实现方式…

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query =…

php实现过程

php实现过程

PHP 实现过程 PHP 是一种广泛使用的服务器端脚本语言,特别适合 Web 开发。以下是 PHP 实现过程的关键步骤和注意事项。 安装与配置 下载并安装 PHP,可以从官方 PHP 网站获取最新版…

php 路由实现的

php 路由实现的

PHP 路由实现方法 基于原生 PHP 实现路由 创建一个简单的路由解析器,通过解析 URL 路径来调用对应的控制器或函数。 // 定义路由表 $routes = [ '/' => '…

php 实现排名

php 实现排名

PHP 实现排名的方法 在 PHP 中实现排名功能通常涉及对数据进行排序、计算排名以及输出结果。以下是几种常见的实现方式: 基本数组排序排名 $scores = [85, 92, 78, 95, 8…