오늘 패키지 상품에 대한 리스트 파일을 엑셀로 받았습니다.

CVS로 만들어서 DB에 밀어 넣어야 하는 상황인대 내용안에 쉼표등 구분자들이 들어가 있었습니다.


일반적으로 엑셀에서 다음과 같이 CSV 파일로 저장을 합니다.



내용에 구분자값이나 쉼표가 들어있기때문에 저렇게 처리 하면 안되고 너무 쉬운문제가 갑자기 생각이 안나는 날이네요


일단 텍스트(탭으로 분리)(*.txt) 파일로 저장을 한뒤

phpmyadmin에서 임포트 인코딩 맞추고 csv를 선택하고 구분자는 \t 로 처리 하면 되는데 말이지요.


여튼 간만에 해봐서 그런지 순간 멍해져서 기록 남겨 놓습니다.


검색시 이런 내용도 있습니다.

http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=318709


엑셀 파일을 데이터 사이의 구분자를 탭으로 하는 텍스트 파일로 저장한 후 대략 아래와 같은 
방법으로 데이터를 넣으시면 될 것 같습니다. 

$fp=fopen("test.txt", "r"); 
if(!$fp) { 
 echo "file open error <br>"; 
 exit; 
 } 
 echo "file open ok"; 

DB 연결 구문이 들어가고 

while($line=fgets($fp,256,"\t")) { 
$query = "insert into test values 
('$line[0]','$line[1]','$line[2]','$line[3]','$line[4]','$line[5]')"; 
$result = mysql_query($query); 
if(!$result)  error_msg(); 
    } 
mysql_close($conn); 
  
  fclose($fp);

저작자 표시
신고

+ Recent posts