250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- OpenCV
- 일일투자금액
- 지방사람이보는서울사람
- php
- 나만의주식5법칙
- 비밀번호변경
- 훌륭한모국어
- ChatGPT
- UPSERT
- Django
- 공작과개미
- Python
- 서울로가자
- 독후감
- 헬레나크로닌
- 클라우드
- Face Detection
- git 업로드
- Git
- db
- 다산의마지막습관
- todolist
- 옹졸함
- 중용
- linux명령어
- 성선택
- delete
- MySQL
- 꼭읽어봐야할책
- 네인생우습지않다
Archives
- Today
- Total
Terry Very Good
[Mysql] CSV를 DB에 업로드 하기 전, CSV에 없는 필드값(deptCD) 비교 후 삭제하기 본문
728x90
반응형
로직
(while문) SELECT문으로 DB데이터 순차적으로 읽기
| (for문) CSV파일 전체 읽으며 DB데이터와 비교
| | DB의 deptCD와 CSV의 deptCD 중 겹치는 것이 있다면 flag=1, 없으면=2
| /
| 순차적으로 읽혀지는 DB데이터 처리(삭제하든 냅두든)
/
<?php
echo "--------------------------------------------------\n";
echo "오래된 조직도 DB를 교체하는 과정이다. \n";
echo "개편조직도데이터는 csv파일에 있으며, csv의 deptCD가 DB에 없다면 \n";
echo "사라진 조직이므로 삭제하는 코드를 짰다.\n";
echo "--------------------------------------------------\n\n\n";
include '../conn.php';
#echo "----------csv파일 내용을 읽고, 한줄씩 쪼개는 과정----------";
$cmd = "cat ./dept_update_info.csv";
$res = `$cmd`;
$rows = explode("\n",$res);
$flag = "";
#echo "----------DB쪽 Data를 가져오는 과정----------";
$trash_value = "1233"; # 의미없는 값임.
$sql = "SELECT * FROM iqms.dept_info WHERE deptCD!=?";
$sql_obj = $conn->prepare($sql);
$sql_obj->bind_param("s", $trash_value);
$sql_obj->execute();
$result = $sql_obj->get_result();
#print_r($result);
#echo "----------DB 데이터를 하나씩 읽는 과정----------";
while($row = $result->fetch_assoc())
{
#echo "----------csv 데이터를 하나씩 읽는 과정----------";
for($i=2; $i < count($rows)-1; $i++)
{
$data=explode(",",$rows[$i]);
#echo "----------DB쪽 deptCD데이터 1개와 CSV파일 전체의 deptCD데이터를 비교한다.----------";
if($row["deptCD"]==$data[1])
{
#echo "두개의 데이터가 같다.";
$flag = "1";
break;
}
else
{
#echo "두개의 데이터가 다르다.";
$flag = "2";
}
}
if($flag = "2") #DB에 CSV값과 다른 값이 있다면 삭제.
{
$sql = "DELETE FROM iqms.dept_info WHERE deptCD = ?";
$sql_obj = $conn->prepare($sql);
$sql_obj->bind_param("s",$data[1]);
$sql_obj->execute();
$result2 = $sql_obj->get_result();
}
}
?>
728x90
반응형
'프로그래밍 > (WEB) DB관리' 카테고리의 다른 글
[Mysql] 참조테이블(다른 테이블)에 있는 값을 기반으로 Update/INSERT 실행하기 (0) | 2021.01.15 |
---|---|
[Mysql] 연속된 XML Code를 DB에 넣는 방법(PHP) (0) | 2021.01.13 |
[Mysql] CSV파일을 DB에 업로드(UPSERT를 이용) (0) | 2021.01.12 |
[Mysql] 백업 및 복구 (0) | 2021.01.12 |
[Mysql] 데이터가 업데이트 되지 않은 학과 찾기(SELECT dept, count(*) as num FROM [테이블명] WHERE [업데이트컬럼]='' GROUP BY dept HAVING num>3;) (0) | 2021.01.10 |