45 lines
1.5 KiB
PHP
45 lines
1.5 KiB
PHP
<?php
|
|
// 1. DB 연결
|
|
require_once 'db_conn.php';
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
try {
|
|
// 클라이언트(JS)로부터 전달받은 검색 조건 (POST 또는 GET 방식에 맞춰 수정)
|
|
$p_member_id = $_POST['member_id'] ?? '';
|
|
$p_member_nm = $_POST['member_nm'] ?? '';
|
|
|
|
// 날짜가 빈 값('')으로 오면 반드시 null로 치환해야 PostgreSQL date 타입 에러가 안 납니다.
|
|
$p_fbuy_dt = (!empty($_POST['fbuy_dt'])) ? $_POST['fbuy_dt'] : null;
|
|
$p_tbuy_dt = (!empty($_POST['tbuy_dt'])) ? $_POST['tbuy_dt'] : null;
|
|
|
|
// 2. 프로시저 호출 - 파라미터 자리에 ?를 사용합니다.
|
|
$stmt = $pdo->prepare("SELECT * FROM kngil.sp_buy_item_history_r(?, ?, ?, ?)");
|
|
|
|
// 파라미터 순서대로 배열에 담아 실행합니다.
|
|
$stmt->execute([
|
|
$p_member_id,
|
|
$p_member_nm,
|
|
$p_fbuy_dt,
|
|
$p_tbuy_dt
|
|
]);
|
|
|
|
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
// 3. W2UI를 위해 각 행에 'recid' 필드 강제 주입
|
|
$records = [];
|
|
foreach ($rows as $row) {
|
|
// 복합키(member_id + sp_no)를 조합하여 유일한 recid 생성
|
|
$row['recid'] = $row['member_id'] . '_' . $row['sq_no'];
|
|
$records[] = $row;
|
|
}
|
|
|
|
// 4. 결과 출력
|
|
echo json_encode($records);
|
|
|
|
} catch (PDOException $e) {
|
|
// HTTP 상태 코드를 500으로 설정하여 클라이언트가 에러임을 인지하게 할 수 있습니다.
|
|
http_response_code(500);
|
|
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
|
|
}
|
|
?>
|