GNU/skin/board/daemon_kind_stock/write_update.skin.php
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
## 날짜/시간
$wr_datetime = "{$date} {$time}";
sql_query(" update $write_table set wr_datetime = '$wr_datetime' where wr_id = '$wr_id' ");
//-----------------------------------------------



sql_query(" update $write_table set x2_run          = '$x2_run'         where wr_id = '$wr_id' ");
sql_query(" update $write_table set x2_ca2          = '$x2_ca2'         where wr_id = '$wr_id' ");
sql_query(" update $write_table set x2_ca3          = '$x2_ca3'         where wr_id = '$wr_id' ");
sql_query(" update $write_table set x2_tag          = '$x2_tag'         where wr_id = '$wr_id' ");
sql_query(" update $write_table set x2_ver          = '$x2_ver'         where wr_id = '$wr_id' ");
sql_query(" update $write_table set wr_subject_kr   = '$wr_subject_kr'  where wr_id = '$wr_id' ");




// 1. 입력한 주식 종목코드 (순정 6자리)
$origin_stock = isset($wr_subject) ? trim($wr_subject) : '';

if ($origin_stock) {
    // 2. [목표 설정] 명령(x2_run)에 따라 최종 이름표 결정
    // 켜져 있으면(1) -> 순정 ("005930")
    // 꺼져 있으면 -> 낙인 ("OFF_005930")
    $is_active = (isset($_POST['x2_run']) && $_POST['x2_run'] == '1');
    $final_stock = $is_active ? $origin_stock : 'OFF_' . $origin_stock;

    // 3. [구멍 탐색] 순정이든 낙인이든 일단 이 종목 행이 있는지 찾음
    global $db_upbit; // DB 연결 객체 (주식 DB가 연결된 객체명 확인 필요)

    if (isset($db_upbit) && $db_upbit) {
        try {
            // 검색 조건: 순정 이름 OR 낙인 이름 둘 중 하나라도 있는지 확인 (테이블 및 컬럼 교체 완료)
            $check_sql = "SELECT wr_id, stck_shrn_iscd FROM daemon_stock_Ticker_0100 WHERE stck_shrn_iscd IN (:clean, :off)";
            $stmt = $db_upbit->prepare($check_sql);
            $stmt->execute([
                ':clean' => $origin_stock, 
                ':off'   => 'OFF_' . $origin_stock
            ]);
            
            $row = $stmt->fetch();

            if ($row) {
                // ★ [UPDATE] 이미 있는 종목이다! -> 이름표만 바꿔 달아줌
                if ($row['stck_shrn_iscd'] != $final_stock) {
                    // updated_at이나 wr_datetime 등 갱신 시간 컬럼이 있다면 NOW() 처리 (여기서는 wr_datetime 사용 가정)
                    $update_sql = "UPDATE daemon_stock_Ticker_0100 SET stck_shrn_iscd = :new_stock, wr_datetime = NOW() WHERE wr_id = :id";
                    $stmt_up = $db_upbit->prepare($update_sql);
                    $stmt_up->execute([
                        ':new_stock' => $final_stock,
                        ':id'        => $row['wr_id']
                    ]);
                }
            } else {
                // ★ [INSERT] 아예 없는 종목이다! -> 새로 박음
                $insert_sql = "INSERT INTO daemon_stock_Ticker_0100 (stck_shrn_iscd, wr_datetime) VALUES (:new_stock, NOW())";
                $stmt_in = $db_upbit->prepare($insert_sql);
                $stmt_in->execute([':new_stock' => $final_stock]);
            }

        } catch (PDOException $e) {
            // 에러 무시
        }
    }
}




// ★ [데몬 저격] 종목 정보가 바뀌었으니 기존 데몬을 죽임
// 부활 데몬이 감지하고 최신 종목 리스트를 들고 다시 살아날 것임
$daemon_file = 'daemon_stock_Ticker_0100.php';
exec("pkill -f $daemon_file");
?>