138 lines
3.1 KiB
PHP
138 lines
3.1 KiB
PHP
<?php
|
|
ini_set('display_errors', 1);
|
|
error_reporting(E_ALL);
|
|
header("Content-Type: application/json; charset=utf-8");
|
|
|
|
/* =========================
|
|
DB 연결
|
|
========================= */
|
|
try {
|
|
$pdo = new PDO(
|
|
"mysql:host=localhost;dbname=egbim;charset=utf8mb4",
|
|
"egbim",
|
|
"baron3840!!",
|
|
[
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
|
|
]
|
|
);
|
|
} catch (Exception $e) {
|
|
echo json_encode(["status" => "fail", "message" => "DB 연결 실패"]);
|
|
exit;
|
|
}
|
|
|
|
$action = $_POST['action'] ?? $_GET['action'] ?? "";
|
|
|
|
|
|
/* =========================
|
|
1) LIST (READ)
|
|
========================= */
|
|
if ($action === "list") {
|
|
|
|
$stmt = $pdo->query("
|
|
SELECT *
|
|
FROM sales_members
|
|
ORDER BY created_at DESC
|
|
");
|
|
|
|
echo json_encode([
|
|
"status" => "ok",
|
|
"records" => $stmt->fetchAll()
|
|
]);
|
|
exit;
|
|
}
|
|
|
|
|
|
/* =========================
|
|
2) INSERT (사번부터 직접 입력)
|
|
========================= */
|
|
if ($action === "insert") {
|
|
|
|
// emp_no가 비어 있으면 오류 반환
|
|
if (empty($_POST['emp_no'])) {
|
|
echo json_encode([
|
|
"status" => "fail",
|
|
"message" => "사번(emp_no)은 필수입니다."
|
|
]);
|
|
exit;
|
|
}
|
|
|
|
$stmt = $pdo->prepare("
|
|
INSERT INTO sales_members (emp_no, emp_name, position, department, created_at)
|
|
VALUES (?, ?, ?, ?, NOW())
|
|
");
|
|
|
|
$stmt->execute([
|
|
$_POST['emp_no'],
|
|
$_POST['emp_name'] ?? '',
|
|
$_POST['position'] ?? '',
|
|
$_POST['department'] ?? ''
|
|
]);
|
|
|
|
echo json_encode(["status" => "ok"]);
|
|
exit;
|
|
}
|
|
|
|
|
|
/* =========================
|
|
3) UPDATE
|
|
========================= */
|
|
if ($action === "update") {
|
|
|
|
$emp_no = $_POST['emp_no'] ?? '';
|
|
if (!$emp_no) {
|
|
echo json_encode(["status" => "fail", "message" => "emp_no 누락"]);
|
|
exit;
|
|
}
|
|
|
|
unset($_POST['action'], $_POST['emp_no']);
|
|
|
|
$fields = [];
|
|
$params = [];
|
|
|
|
foreach ($_POST as $key => $value) {
|
|
|
|
// 🔥 빈문자, null 은 업데이트 X → 기존 DB 값 유지
|
|
if ($value === '' || $value === null) {
|
|
continue;
|
|
}
|
|
|
|
$fields[] = "$key = ?";
|
|
$params[] = $value;
|
|
}
|
|
|
|
if (!empty($fields)) {
|
|
$sql = "UPDATE sales_members SET
|
|
" . implode(", ", $fields) . ",
|
|
updated_at = NOW()
|
|
WHERE emp_no = ?";
|
|
$params[] = $emp_no;
|
|
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->execute($params);
|
|
}
|
|
|
|
echo json_encode(["status" => "ok"]);
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
/* =========================
|
|
4) DELETE
|
|
========================= */
|
|
if ($action === "delete") {
|
|
|
|
$stmt = $pdo->prepare("DELETE FROM sales_members WHERE emp_no=?");
|
|
$stmt->execute([$_POST['emp_no']]);
|
|
|
|
echo json_encode(["status" => "ok"]);
|
|
exit;
|
|
}
|
|
|
|
|
|
/* =========================
|
|
DEFAULT
|
|
========================= */
|
|
echo json_encode(["status" => "fail", "message" => "알 수 없는 요청"]);
|