63 lines
2.1 KiB
PHP
63 lines
2.1 KiB
PHP
|
|
<?php
|
||
|
|
require_once($_SERVER['DOCUMENT_ROOT'] . "/session.php");
|
||
|
|
|
||
|
|
print 'claimList를 json형태의 파일 내용을 강제로 생성하기 위한 화면 ';
|
||
|
|
|
||
|
|
include '_request.php';
|
||
|
|
|
||
|
|
$tablename = 'work';
|
||
|
|
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
|
||
|
|
$pdo = db_connect();
|
||
|
|
|
||
|
|
// PDO에서 버퍼링된 쿼리를 사용하도록 설정
|
||
|
|
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
|
||
|
|
|
||
|
|
// 이 스크립트의 메모리 제한 증가
|
||
|
|
ini_set('memory_limit', '256M');
|
||
|
|
|
||
|
|
$sql = "SELECT * FROM " . $DB . "." . $tablename;
|
||
|
|
try {
|
||
|
|
$stmh = $pdo->prepare($sql);
|
||
|
|
$stmh->execute();
|
||
|
|
$rows = $stmh->fetchAll(PDO::FETCH_ASSOC);
|
||
|
|
|
||
|
|
$pdo->beginTransaction();
|
||
|
|
|
||
|
|
foreach ($rows as $row) {
|
||
|
|
// 1차부터 6차까지의 데이터를 배열로 구성
|
||
|
|
$claimListData = [];
|
||
|
|
for ($i = 1; $i <= 6; $i++) {
|
||
|
|
// 'claimamount' 또는 'claimfix' 중 하나라도 값이 있을 때만 행을 추가
|
||
|
|
if (!empty($row["claimamount$i"]) || !empty($row["claimfix$i"])) {
|
||
|
|
$data = [
|
||
|
|
'col1' => ($row["claimdate$i"] === '0000-00-00') ? '' : ($row["claimdate$i"] ?? ''),
|
||
|
|
'col2' => $row["claimamount$i"] ?? '',
|
||
|
|
'col3' => $row["claimfix$i"] ?? '',
|
||
|
|
'col4' => '',
|
||
|
|
'col5' => '',
|
||
|
|
'col6' => $row["claimbalance$i"] ?? ''
|
||
|
|
];
|
||
|
|
|
||
|
|
$claimListData[] = $data;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// JSON으로 변환
|
||
|
|
$claimListJson = json_encode($claimListData, JSON_UNESCAPED_UNICODE);
|
||
|
|
|
||
|
|
// 데이터베이스 업데이트
|
||
|
|
$updateSql = "UPDATE $DB.$tablename SET claimList = :claimList WHERE num = :num";
|
||
|
|
$updateStmh = $pdo->prepare($updateSql);
|
||
|
|
$updateStmh->bindValue(':claimList', $claimListJson, PDO::PARAM_STR);
|
||
|
|
$updateStmh->bindValue(':num', $row['num'], PDO::PARAM_INT);
|
||
|
|
$updateStmh->execute();
|
||
|
|
}
|
||
|
|
|
||
|
|
$pdo->commit();
|
||
|
|
echo "모든 레코드의 claimList가 성공적으로 업데이트되었습니다.";
|
||
|
|
} catch (PDOException $Exception) {
|
||
|
|
$pdo->rollBack();
|
||
|
|
echo "오류: " . $Exception->getMessage();
|
||
|
|
}
|
||
|
|
?>
|