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) { $estimateListData = []; // 기본 행 추가 if (!empty($row["estimate1"]) || !empty($row["estimate1_vat"])) { $data = [ 'col1' => ($row["condate"] === '0000-00-00') ? '' : ($row["condate"] ?? ''), 'col2' => $row["estimate1_supply"] ?? '', 'col3' => $row["estimate1_vat"] ?? '', 'col4' => $row["estimate1"] ?? '', 'col5' => $row["file_name_0"] ?? '', 'col6' => $row["file_copied_0"] ?? '' ]; $estimateListData[] = $data; } // 1차 행 추가 if (!empty($row["estimate2"]) || !empty($row["estimate2_vat"])) { $data = [ 'col1' => ($row["condate1"] === '0000-00-00') ? '' : ($row["condate1"] ?? ''), 'col2' => $row["estimate2_supply"] ?? '', 'col3' => $row["estimate2_vat"] ?? '', 'col4' => $row["estimate2"] ?? '', 'col5' => $row["file_name_1"] ?? '', 'col6' => $row["file_copied_1"] ?? '' ]; $estimateListData[] = $data; } // 2차 행 추가 if (!empty($row["estimate3"]) || !empty($row["estimate3_vat"])) { $data = [ 'col1' => ($row["condate2"] === '0000-00-00') ? '' : ($row["condate2"] ?? ''), 'col2' => $row["estimate3_supply"] ?? '', 'col3' => $row["estimate3_vat"] ?? '', 'col4' => $row["estimate3"] ?? '', 'col5' => $row["file_name_2"] ?? '', 'col6' => $row["file_copied_2"] ?? '' ]; $estimateListData[] = $data; } // JSON으로 변환 $estimateListJson = json_encode($estimateListData, JSON_UNESCAPED_UNICODE); // 데이터베이스 업데이트 $updateSql = "UPDATE {$DB}.work SET estimateList = :estimateList WHERE num = :num"; $updateStmh = $pdo->prepare($updateSql); $updateStmh->bindValue(':estimateList', $estimateListJson, PDO::PARAM_STR); $updateStmh->bindValue(':num', $row['num'], PDO::PARAM_INT); $updateStmh->execute(); } $pdo->commit(); echo "모든 레코드의 estimateList가 성공적으로 업데이트되었습니다."; } catch (PDOException $Exception) { $pdo->rollBack(); echo "오류: " . $Exception->getMessage(); } ?>