형식이 다른 엑셀 파일 DB에 올리기 정보
형식이 다른 엑셀 파일 DB에 올리기본문
엑셀 파일을 DB에 올리고자하는데 형식이 다른경우에 쓰는 방법입니다.
같은 폴더에 CSV로 저장한 엑셀 파일과 빈 query.sql 파일을 하나 생성하고
아래 양식대로 php 파일을 생성합니다.
/* 주석처리부분은 파일 내에서 sql을 실행할 때 이용하세요.
$host="localhost";
$user="myid";
$passwd="mypass";
$dataname="mydb";
$con=@mysql_connect($host,$user,$passwd,true);
@mysql_select_db($dataname,$con) or die("db connect err");
*/
$values = array();
$row = 0;
if (($handle = fopen("filename.csv", "r")) !== FALSE) {
while (($col = fgetcsv($handle, 40000, ",")) !== FALSE) {
$values[] = "(\"$col[1]\", \"$col[2]\", \"$col[3]\", \"$col[4]\", \"$col[10]\")"; // 첫번째 셀은 0
$row++;
}
fclose($handle);
}
$query = "insert into name (a, b, c, d, c) values " . implode(",\n", $values);
$fp = fopen('query.sql', 'w');
fwrite($fp, $query);
fclose($fp);
echo "작업이 완료되었습니다!";
그 다음 생성된 sql 파일을 phpMyAdmin과 같은 프로그램에 올리면 끝납니다.
저런 방법을 쓰는 이유는 프로그램에서 관련 쿼리를 처리하게했을 때
제한이 걸리는지 일부밖에 등록이 안되는 경우가 있습니다.
그래서 쿼리 한건에 전부 다 처리하기 위함입니다.
같은 폴더에 CSV로 저장한 엑셀 파일과 빈 query.sql 파일을 하나 생성하고
아래 양식대로 php 파일을 생성합니다.
/* 주석처리부분은 파일 내에서 sql을 실행할 때 이용하세요.
$host="localhost";
$user="myid";
$passwd="mypass";
$dataname="mydb";
$con=@mysql_connect($host,$user,$passwd,true);
@mysql_select_db($dataname,$con) or die("db connect err");
*/
$values = array();
$row = 0;
if (($handle = fopen("filename.csv", "r")) !== FALSE) {
while (($col = fgetcsv($handle, 40000, ",")) !== FALSE) {
$values[] = "(\"$col[1]\", \"$col[2]\", \"$col[3]\", \"$col[4]\", \"$col[10]\")"; // 첫번째 셀은 0
$row++;
}
fclose($handle);
}
$query = "insert into name (a, b, c, d, c) values " . implode(",\n", $values);
$fp = fopen('query.sql', 'w');
fwrite($fp, $query);
fclose($fp);
echo "작업이 완료되었습니다!";
그 다음 생성된 sql 파일을 phpMyAdmin과 같은 프로그램에 올리면 끝납니다.
저런 방법을 쓰는 이유는 프로그램에서 관련 쿼리를 처리하게했을 때
제한이 걸리는지 일부밖에 등록이 안되는 경우가 있습니다.
그래서 쿼리 한건에 전부 다 처리하기 위함입니다.
추천
2
2
댓글 3개
추천입니다~
감사합니다
감사합니다.