테스트 사이트 - 개발 중인 베타 버전입니다

형식이 다른 엑셀 파일 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과 같은 프로그램에 올리면 끝납니다.

저런 방법을 쓰는 이유는 프로그램에서 관련 쿼리를 처리하게했을 때
제한이 걸리는지 일부밖에 등록이 안되는 경우가 있습니다.
그래서 쿼리 한건에 전부 다 처리하기 위함입니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 3개

감사합니다
감사합니다.

게시글 목록

번호 제목
33411
33410
33409
33408
33407
33404
33403
33402
33399
33398
33390
33386
33377
33356
33348
33340
33334
33333
33329
33322