php简单编写后端接口供前端使用

在apahce的htdocs目录下新建api目录,用vscode打开,然后新建php文件
以user.php为例:

// 允许的来源和允许的方法、头信息
$allowed_origins = array('http://localhost:5173');
$allowed_methods = 'POST, GET, OPTIONS';
$allowed_headers = 'Authorization, Content-Type';

// 获取请求头中的来源和请求方法
$request_origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
$request_method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '';

// 检查请求的来源是否在允许的来源列表中
if (in_array($request_origin, $allowed_origins)) {
    header('Access-Control-Allow-Origin: ' . $request_origin);
}

// 处理 OPTIONS 请求(预检请求)
if ($request_method === 'OPTIONS') {
    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Methods: $allowed_methods");
    header("Access-Control-Allow-Headers: $allowed_headers");
    http_response_code(200);
    exit;
}

// 设置 CORS 头信息
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Expose-Headers: *');

//链接数据库
$conn = new mysqli("localhost", "root", "root", "schoolnews");
if ($conn->connect_error) {
    die("Could not connect to database!");
}

// 创建返回的数据对象
$res = array('error' => false);

//构建接口
$action = "";

if (isset($_GET['action'])) {
    $action = $_GET['action'];
}

// 获取所有用户
if ($action == "getUser") {
    //中文乱码时,添加如下内容
    $conn->query("set names utf8");
    //进行sql查询,获取数据库中数据
    $result = $conn->query("SELECT * FROM `user`");
    $user_data = array();

    if ($result !== false && $result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            array_push($user_data, $row);
        }
    }

    $res['mesg'] = "获取成功";
    $res['data'] = $user_data;
    //以json格式返回数据
    echo json_encode($res);
    $conn->close();
    die();
}

// 删除用户
if ($action == "deleteUser") {
    $id = $_POST['id'];

    //中文乱码时,添加如下内容
    $conn->query("set names utf8");
    //进行sql查询,获取数据库中数据
   	$sql=$conn->query("DELETE FROM `user` WHERE `id`=$id");
	//判断删除是否成功
	if ($conn->query($sql) === TRUE) {
        $res['mesg'] = "删除成功";
        $res['type'] = "success";
    } else {
        $res['mesg'] = "删除失败:" . $conn->error;
        $res['type'] = "error";
    }
    //返回数据
    echo json_encode($res);
    $conn->close();
    die();
}

编写好接口后,前端调用接口

import httpInstance from "@/utils/http";

//获取所有用户
export const getUserAPI = () => httpInstance.get('/SchoolNews/Api/admin.php?action=getUser')

//删除用户
export const deleteUserAPI = (id) => {
    // 构造要发送的数据
    const data = new URLSearchParams();
    data.append('id', id);

    return httpInstance.post('/SchoolNews/Api/user.php?action=deleteUser', data);
}
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值