Files
YelayMaths/服务端/API/ApiGetOrInsertUserDataFromDB.php
2026-09-29 13:39:36 +08:00

81 lines
2.9 KiB
PHP
Executable File

<?php
header('Content-Type: application/json');
// 引用配置,建立数据库连接
require_once 'ApiConfig.php';
// 接收前端传递的OpenID
$received_openid = isset($_GET['openid']) ? $_GET['openid'] : null;
if ($received_openid) {
// 创建数据库连接
$conn = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
// 检查连接是否成功
if ($conn->connect_error) {
die(json_encode(["error" => "Database connection failed"]));
}
// 使用预处理语句查询
$stmt = $conn->prepare("SELECT * FROM 用户信息 WHERE OpenID = ?");
$stmt->bind_param("s", $received_openid);
$stmt->execute();
$result = $stmt->get_result();
// 检查查询是否成功
if ($result) {
if ($result->num_rows > 0) {
// 如果查询到记录,返回整条记录
$row = $result->fetch_assoc();
echo json_encode(["result" => "信息已经查询到", "data" => $row]);
} else {
// 如果没有查询到记录,执行插入操作
$insert_stmt = $conn->prepare("INSERT INTO 用户信息 (OpenID, 最后登录日期, 注册日期, HeadiconID) VALUES (?, NOW(), NOW(), 0)");
$insert_stmt->bind_param("s", $received_openid);
if ($insert_stmt->execute()) {
// 插入成功后再次查询
$stmt_after_insert = $conn->prepare("SELECT * FROM 用户信息 WHERE OpenID = ?");
$stmt_after_insert->bind_param("s", $received_openid);
$stmt_after_insert->execute();
$result_after_insert = $stmt_after_insert->get_result();
// 检查查询是否成功
if ($result_after_insert) {
if ($result_after_insert->num_rows > 0) {
// 如果查询到记录,返回整条记录
$row_after_insert = $result_after_insert->fetch_assoc();
echo json_encode(["result" => "新游客已经添加!", "data" => $row_after_insert]);
} else {
echo json_encode(["error" => "未找到插入后的记录"]);
}
// 关闭查询的预处理语句
$stmt_after_insert->close();
} else {
// 查询失败时的错误处理
echo json_encode(["error" => $conn->error]);
}
// 关闭插入的预处理语句
$insert_stmt->close();
} else {
echo json_encode(["error" => "Error inserting record"]);
}
}
} else {
// 查询失败时的错误处理
echo json_encode(["error" => $conn->error]);
}
// 关闭原始查询的预处理语句
$stmt->close();
// 关闭数据库连接
$conn->close();
} else {
echo json_encode(["error" => " 暂无数据!"]);
}
?>