Files
sam-kd/account_juil/insert_bulk.php
hskwon aca1767eb9 초기 커밋: 5130 레거시 시스템
- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경
- DB 연결 하드코딩 → .env 기반으로 변경
- MySQL strict mode DATE 오류 수정
2025-12-10 20:14:31 +09:00

76 lines
2.2 KiB
PHP

<?php
// insert_bulk.php
require_once $_SERVER['DOCUMENT_ROOT'] . '/session.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/lib/mydb.php';
header('Content-Type: application/json; charset=utf-8');
$pdo = db_connect();
// 1) 클라이언트에서 JSON 문자열로 넘어온 entries
$payload = $_POST['entries'] ?? '';
$entries = json_decode($payload, true);
if (!is_array($entries) || count($entries) === 0) {
echo json_encode([
'status' => 'error',
'message' => '저장할 데이터가 없습니다.'
], JSON_UNESCAPED_UNICODE);
exit;
}
$nums = [];
try {
$pdo->beginTransaction();
// 2) account_juil 테이블에 대량 INSERT
$sql = "INSERT INTO account_juil (
registDate,
inoutsep,
bankbook,
content,
contentSub,
content_detail,
amount,
secondordnum,
dueDate,
endorsementDate
) VALUES (
?,?,?,?,?,?,?,?,?,?
)";
$stmt = $pdo->prepare($sql);
foreach ($entries as $row) {
$stmt->execute([
$row['registDate'], // 등록일자
$row['inoutsep'], // 구분
$row['bankbook'], // 계좌
$row['content'], // 항목
$row['contentSub'], // 세부항목
$row['content_detail'], // 상세내용
$row['amount'], // 금액 (콤마 제거된 숫자)
$row['secondordnum'], // 거래처코드
$row['dueDate'], // 만기일자
$row['endorsementDate'], // 배서일자
]);
// 3) 새로 생성된 AUTO_INCREMENT PK (num) 수집
$nums[] = $pdo->lastInsertId();
}
$pdo->commit();
// 4) 성공 응답: nums 배열을 돌며 클라이언트가 이미지 업로드에 사용할 수 있음
echo json_encode([
'status' => 'success',
'nums' => $nums
], JSON_UNESCAPED_UNICODE);
} catch (PDOException $e) {
$pdo->rollBack();
echo json_encode([
'status' => 'error',
'message' => $e->getMessage()
], JSON_UNESCAPED_UNICODE);
}