connect_error) { // http_response_code(500); // echo json_encode(['message' => 'DB 연결 실패']); // exit; // } // mysqli_set_charset($conn, 'utf8mb4'); // // 파라미터 받기 // $product_code = $_POST['product_code'] ?? ''; // $family_version = $_POST['family_version'] ?? ''; // $external_version = $_POST['external_version'] ?? ''; // // 필수 값 체크 // if (!$product_code || !$family_version || !$external_version) { // http_response_code(400); // echo json_encode(['message' => '필수값 누락']); // exit; // } // // INSERT or UPDATE (upsert) // $sql = "INSERT INTO deploy_versions (product_code, family_version, external_version) // VALUES (?, ?, ?) // ON DUPLICATE KEY UPDATE // family_version = VALUES(family_version), // external_version = VALUES(external_version)"; // $stmt = $conn->prepare($sql); // $stmt->bind_param("sss", $product_code, $family_version, $external_version); // if ($stmt->execute()) { // echo json_encode(['message' => '저장 성공']); // } else { // http_response_code(500); // echo json_encode(['message' => 'DB 오류: ' . $stmt->error]); // } // $stmt->close(); // $conn->close(); ?> connect_error) { // http_response_code(500); // echo json_encode(['message' => 'DB 연결 실패: ' . $conn->connect_error]); // exit; // } // mysqli_set_charset($conn, 'utf8mb4'); // //디버깅 // $db_name = $conn->query("SELECT DATABASE()")->fetch_row()[0]; // $res = $conn->query("SELECT code FROM products"); // $rows = []; // while ($row = $res->fetch_assoc()) $rows[] = $row['code']; // echo json_encode([ // 'db' => $db_name, // 'all_codes' => $rows, // 'product_code' => $_POST['product_code'] ?? '' // ]); // exit; // //디버깅 // $product_code = $_POST['product_code'] ?? ''; // $family_version = $_POST['family_version'] ?? ''; // $external_version = $_POST['external_version'] ?? ''; // if (!$product_code || !$family_version || !$external_version) { // http_response_code(400); // echo json_encode(['message' => '필수값 누락']); // exit; // } // // FK 에러 방지: products 테이블에 존재하는지 확인 // $chk = $conn->prepare("SELECT COUNT(*) FROM products WHERE code=?"); // $chk->bind_param("s", $product_code); // $chk->execute(); // $chk->bind_result($cnt); // $chk->fetch(); // $chk->close(); // if ($cnt < 1) { // http_response_code(400); // echo json_encode(['message' => '존재하지 않는 제품코드입니다']); // exit; // } // $sql = "INSERT INTO deploy_versions (product_code, family_version, external_version) // VALUES (?, ?, ?) // ON DUPLICATE KEY UPDATE // family_version=VALUES(family_version), // external_version=VALUES(external_version)"; // $stmt = $conn->prepare($sql); // if (!$stmt) { // http_response_code(500); // echo json_encode(['message' => '쿼리 준비 오류: ' . $conn->error]); // exit; // } // $stmt->bind_param("sss", $product_code, $family_version, $external_version); // if ($stmt->execute()) { // echo json_encode(['message' => '저장 성공']); // } else { // http_response_code(500); // echo json_encode(['message' => 'DB 오류: ' . $stmt->error]); // } // $stmt->close(); // $conn->close(); ?> connect_error) { http_response_code(500); echo json_encode(['message' => 'DB 연결 실패: ' . $conn->connect_error]); exit; } mysqli_set_charset($conn, 'utf8mb4'); // FK 에러 방지: products 테이블에 존재하는지 확인 $chk = $conn->prepare("SELECT COUNT(*) FROM products WHERE code=?"); $chk->bind_param("s", $product_code); $chk->execute(); $chk->bind_result($cnt); $chk->fetch(); $chk->close(); if ($cnt < 1) { http_response_code(400); echo json_encode(['message' => '존재하지 않는 제품코드입니다']); exit; } // 실제 insert/update 쿼리 실행 $sql = "INSERT INTO deploy_versions (product_code, family_version, external_version) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE family_version=VALUES(family_version), external_version=VALUES(external_version)"; $stmt = $conn->prepare($sql); if (!$stmt) { http_response_code(500); echo json_encode(['message' => '쿼리 준비 오류: ' . $conn->error]); exit; } $stmt->bind_param("sss", $product_code, $family_version, $external_version); if ($stmt->execute()) { echo json_encode(['message' => '저장 완료']); } else { http_response_code(500); echo json_encode(['message' => 'DB 오류: ' . $stmt->error]); } $stmt->close(); $conn->close(); ?>