Files
sam-kd/account_juil/insert_bulk.php

76 lines
2.2 KiB
PHP
Raw Normal View History

<?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);
}