나는 정기적으로 CSV 파일을 MySQL 데이터베이스에 업로드하는 스크립트 작업을하고 있습니다. 문제는 CSV 파일의 필드 중 하나에 사용자가 생성 한 텍스트가 포함되어 있으며 인용문 및 기타 문자가 포함되어있어 MySQL에 친숙하지 않습니다.LOAD INFILE 전에 MySQL에 CSV 파일을 이스케이프
나는 CSV 파일을 업로드하는 가장 효율적인 방법은 MySQL의 'LOAD DATA INFILE'명령을 사용하는 것이라고 결론 내렸다. 이 phpadmin을 이용하여 database에 나타나는 나는 CSV 업로드 할 때 다음 명령은 다음과 같습니다
단순히 실행되는 프로세스가 즉시 종료이 명령은으로 작동하지 않습니다으로 CSV를로드LOAD DATA LOCAL INFILE '/home/myfolder/tmp/property_re_1.csv' REPLACE INTO TABLE `markers`
FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\'
LINES TERMINATED BY '\r\n' # 2 rows affected.
' "'와" ESCAPED BY '\' "는 목적을 달성하지 못하는 것 같습니다.
이 경우에는 PHP를 사용하여 프로그래밍 방식으로 CSV 파일의 인용문을 이스케이프 처리해야 할 수 있습니다. SQL에서 LOAD DATA INFILE 명령을 사용하는 MySQL
"Best Practice"솔루션이있는 일반적인 문제입니다. 본질적으로 스크립트에는 t o CSV 파일을 MYSQL 테이블에로드하기 전에 CSV 파일을 "정리"하십시오. https://www.dropbox.com/sh/4iq10i51qlqyq8q/UjEQwvXKDA
감사를 사전에 도움을 : 여기
는 현명한 마음이 하나 주위에 머리를 포장하기 위해 내가 함께 일하고 실제 SQL 테이블과 CSV 파일에 대한 링크입니다.
어떤 코드가 CSV를 생성합니까? CSV가 제대로 생성되면 아무런 문제가 없습니다. CSV가 제대로 생성되지 않으면 CSV 생성기를 수정하는 것이 가장 간단합니다. 파일이 사용자 정의라면, 걱정할 하나의 필드 그 이상이 있습니다. –
CSV는 변경할 수없는 외부 데이터베이스에 의해 생성됩니다. – AME