홈페이지를 리뉴얼하면서 게시판에 있는 게시물들을 다른 사이트로 옮기고 싶었다.

어떻게 해야할지 막막했지만, 엑셀 파일을 이용하면 간편하게 할 수 있다는 것을 알게되었다.

찾아본 결과 파일명.csv 형식의 파일로 만들면 집어넣을 수 있다고 한다. 

SCV도 아니고 CSV는 무슨 약자일까?


CSV = Comma Separated values

즉, 몇 가지 데이터 필드를 쉼표로 구분한 텍스트 데이터 및 텍스트 파일이다.


1. 일단 엑셀을 실행시키고, 데이터베이스에 삽입할 데이터를 작성한다.

(DB에 생성된 컬럼들을 맞춰주자)


2. 작성한 뒤, 다른이름으로 저장 -> 파일형식 -> CSV(쉼표로 분리)를 선택한 후 저장한다.


mysql에 접속한 뒤, DB를 선택하고 다음과 같은 문장을 써서 입력했다고 한다.


LOAD DATA INFILE '파일위치/파일명.csv' INTO TABLE 테이블명 FIELDS TERMINATED BY ',';


이렇게하면 다른사람들은 되는데 에러가 발생한다.


--secure-file-priv 옵션이 무엇인가? 


으... 오전 내내 이것때문에 진행을 못해서 점심먹고 오후부터는 다른 방법을 쓰기로 했다.


바로 phpmyadmin.


여기서 import를 사용해서 .csv파일을 넣을 수 있다고 한다.

해봤다.


이런!! 또다시 같은 에러가 발생한다.

검색하다보니 LOCAL을 써줘야 잘 작동한다고 한다.


1. 업로드 파일에서 -> 올리고자 하는 csv파일을 선택하고,

2. 파일 문자셋은 무난한 -> UTF-8

3. 형식은 -> CSV가 아닌 CSV using LOAD DATA

4. 열(컬럼) 구분자 -> ,

5. 열 감싸기 -> "

6. LOCAL 키워드 사용 에 체크!


이렇게 한 뒤 실행을 눌렀다. 그랬더니. 


에러 메세지가 바뀌었다. 오 뭔가 값을 읽는 느낌이 생겼다. 좋다.

UTF-8 설정했지만, 엑셀쪽이 UTF-8이 아닐 경우 이런 문제가 발생한다.

엑셀에서 문자 인코딩을 변경해주거나 아니면 txt 파일로 편집을 누른뒤에 메모장에서 인코딩을 바꿔도 된다.

어떻게하던지 인코딩만 바꿔주면된다.

자. 다시 도전 



오호라. 해결~ 빨간색보다 훨씬 기분이 좋은 녹색~

Posted by sungho88
,