프로그래밍/(WEB) DB관리
[Mysql] CSV파일을 DB에 업로드(UPSERT를 이용)
테리베리
2021. 1. 12. 17:08
728x90
반응형
로직
1. CSV파일의 출력(CAT) 결과를 변수에 저장
2. explode를 이용한 데이터 배열화 ( '줄'을 기준으로 앞뒷값들을 배열로)
(for문) explode를 이용한 CSV 데이터 순차적 추출(','를 기준으로 앞뒷값들을 배열로)
| SQL문(UPSERT) 수행
/
<?php
include '../conn.php';
# csv파일 전부를 cmd라는 변수에 입력
$cmd = "cat ./dept_update_info.csv";
$res = `$cmd`;
$rows = explode("\n",$res);
for($i=2; $i < count($rows)-1; $i++)
{
$data=explode(",",$rows[$i]);
#echo $data[0]; //팀명(dept)
#echo $data[1]; //조직코드(deptCD)
#echo $data[2]; //조직전체명칭(dept_full)
#echo $data[3]; //상위조직코드(upper_deptCD)
#echo $data[4]; //순(ord)
$sql = "INSERT INTO iqms.dept_info ";
$sql .= "( ";
$sql .= " dept, deptCD, dept_full, upper_deptCD, ord ";
$sql .= ") ";
$sql .= "VALUES ";
$sql .= "( ";
$sql .= " ?,?,?,?,? ";
$sql .= ") ";
$sql .= "ON DUPLICATE KEY UPDATE dept=?, dept_full=?, upper_deptCD=?, ord=?;";
#echo "\n\n".$sql."\n\n";
$sql_obj = $conn->prepare($sql);
$sql_obj->bind_param("sssssssss",$data[0],$data[1],$data[2],$data[3],$data[4],$data[0],$data[2],$data[3],$data[4]);
$sql_obj->execute();
$result = $sql_obj->get_result();
}
?>
728x90
반응형