형식이 다른 엑셀 파일 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과 같은 프로그램에 올리면 끝납니다.
저런 방법을 쓰는 이유는 프로그램에서 관련 쿼리를 처리하게했을 때
제한이 걸리는지 일부밖에 등록이 안되는 경우가 있습니다.
그래서 쿼리 한건에 전부 다 처리하기 위함입니다.
댓글 3개
WEBUS
13년 전
추천입니다~
부드러운칼
13년 전
감사합니다
꽃다방김군
13년 전
감사합니다.
게시판 목록
그누4 팁자료실
그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.
나누면 즐거움이 커집니다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 3129 | 12년 전 | 5170 | ||
| 3128 | 12년 전 | 7909 | ||
| 3127 | 12년 전 | 7060 | ||
| 3126 | 12년 전 | 4981 | ||
| 3125 | 12년 전 | 5867 | ||
| 3124 | 12년 전 | 5554 | ||
| 3123 | 12년 전 | 5921 | ||
| 3122 | 12년 전 | 6167 | ||
| 3121 | 12년 전 | 5516 | ||
| 3120 | 12년 전 | 5813 | ||
| 3119 | 12년 전 | 5236 | ||
| 3118 | 12년 전 | 4670 | ||
| 3117 | 12년 전 | 4442 | ||
| 3116 | 12년 전 | 7203 | ||
| 3115 | 12년 전 | 6025 | ||
| 3114 |
생각하는바보
|
12년 전 | 6406 | |
| 3113 |
|
12년 전 | 4819 | |
| 3112 |
|
12년 전 | 5205 | |
| 3111 |
|
12년 전 | 3638 | |
| 3110 |
|
12년 전 | 4079 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기