PDO::ERRMODE_EXCEPTION] // ); // $productCode = $_POST['product_code'] ?? ''; // $version = $_POST['version'] ?? ''; // $userName = $_SESSION['user']['name'] ?? '알수없음'; // if(!$productCode){ // echo json_encode(['status'=>'fail','message'=>'제품 코드 누락']); // exit; // } // // ✅ 버전이 비어있으면 기본값 "0.0.0" // $version = trim($version) !== '' ? $version : '0.0.0'; // // ✅ family_version = external_version 동일하게 저장 // $st = $pdo->prepare(" // INSERT INTO deploy_versions (product_code, family_version, external_version, external_updated_by, updated_at) // VALUES (:pc, :ver, :ver, :user, NOW()) // ON DUPLICATE KEY UPDATE // family_version = VALUES(family_version), // external_version = VALUES(external_version), // external_updated_by = VALUES(external_updated_by), // updated_at = NOW() // "); // $st->execute([ // ':pc' => $productCode, // ':ver' => $version, // ':user' => $userName // ]); // echo json_encode([ // 'status' => 'ok', // 'family_version' => $version, // 'external_version' => $version, // 'updated_by' => $userName // ]); // } catch(Exception $e){ // echo json_encode(['status'=>'fail','message'=>$e->getMessage()]); // } ?> PDO::ERRMODE_EXCEPTION] ); $productCode = $_POST['product_code'] ?? ''; $version = trim($_POST['version'] ?? ''); $userName = $_SESSION['user']['name'] ?? '알수없음'; if (!$productCode) { echo json_encode(['status'=>'fail','message'=>'제품 코드 누락']); exit; } // 현재 family_version 가져오기 (내부 최신 버전) $st = $pdo->prepare("SELECT family_version FROM deploy_versions WHERE product_code=? LIMIT 1"); $st->execute([$productCode]); $currentFamily = $st->fetchColumn() ?: '0.0.0'; if ($version === '') { // ✅ 사용안함 → external_version = 내부 배포 버전(family_version)과 동일 $externalVer = $currentFamily; } else { // ✅ 외부 버전 직접 지정 → external_version만 변경 $externalVer = $version; } // DB 업데이트 (family_version은 유지, external_version만 갱신) $st = $pdo->prepare(" INSERT INTO deploy_versions (product_code, family_version, external_version, external_updated_by, updated_at) VALUES (:pc, :fam, :ext, :user, NOW()) ON DUPLICATE KEY UPDATE family_version = VALUES(family_version), -- 기존 값 유지 위해 다시 넣음 external_version = VALUES(external_version), external_updated_by = VALUES(external_updated_by), updated_at = NOW() "); $st->execute([ ':pc' => $productCode, ':fam' => $currentFamily, // 유지 ':ext' => $externalVer, ':user' => $userName ]); echo json_encode([ 'status' => 'ok', 'family_version' => $currentFamily, 'external_version' => $externalVer, 'updated_by' => $userName ]); } catch(Exception $e){ echo json_encode(['status'=>'fail','message'=>$e->getMessage()]); }