- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경 - DB 연결 하드코딩 → .env 기반으로 변경 - MySQL strict mode DATE 오류 수정
76 lines
2.2 KiB
PHP
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 테이블에 대량 INSERT
|
|
$sql = "INSERT INTO account (
|
|
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);
|
|
}
|