반응형
.csv 파일을 MySQL로 가져오고 있으며 파일에있는 줄 바꿈을 제외하고 모든 것이 잘 작동합니다.
내 .csv 행 중 하나는 다음과 같습니다.
42,E-A-R™ Classic™ Earplugs,ear,images/ear/classic.jpg,5%,"Proven size, shape, and foam
3M's most popular earplug
Corded and uncorded in a variety of individual packs
NRR 29 dB / CSA Class AL",312-1201,,"E-A-R™ Classic™ Uncorded Earplugs, in Poly Bag",310-1001,,E-A-R™ Classic™ Uncorded Earplugs in Pillow Pack,311-1101,,"E-A-R™ Classic™ Corded Earplugs, in Poly Bag"
여섯 번째 필드 오버는 호출 될 때 새 줄로 분리되어야하지만 그렇지 않습니다. .csv를 가져올 때 다음으로 종료되는 줄 \ r을 선택합니다. 나는 \ n과 자동을 시도했지만 운이 없다.
이상한 점은 필드가 데이터베이스에서 모든 적절한 중단으로 올바르게 보인다는 것입니다. PHPmyadmin에 줄 바꿈을 수동으로 삽입하면 올바르게 인쇄됩니다. 각 필드도 UTF-8로 설정됩니다.
이것에 대한 아이디어가 있습니까? 감사.
수정 : 다음은 MySQL 문입니다.
LOAD DATA LOCAL INFILE '/tmp/php89FC0F' REPLACE INTO TABLE `ohes_flyer_products`
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r'
해결 방법
라인을 따라 뭔가
$fd = fopen($csvfile, "r");
while ($line = fgetcsv($fd))
{
$sql = sprintf("INSERT INTO tablename (...) VALUES ('%s', ...)", $line[0], ...);
$res = mysql_query($sql);
}
참고 1 : 코드가 프로덕션에 준비되지 않았습니다. SQL 삽입을 확인하십시오!
참고 2 : 준비된 문을 사용하면 작업 속도가 빨라지므로 하나의 다중 행 삽입 문을 만들 수 있습니다.
참고 3 : 트랜잭션에서 모두 포장하십시오.
참조 페이지 https://stackoverflow.com/questions/4682965
반응형
'MySql' 카테고리의 다른 글
MySQL phpMyadmin-오류 # 1064 (0) | 2020.10.23 |
---|---|
MySQL SQL : 중복 필드 값을 무시하면서 테이블에서 행을 선택하는 방법은 무엇입니까? (0) | 2020.10.23 |
MySQL 데이터베이스에 원격으로 연결 (0) | 2020.10.23 |
MySQL PHP에서 MySQL 테이블 구조를 어떻게 얻습니까? 게다가 모든 테이블 목록? (0) | 2020.10.23 |
MySQL PHP 경고 : include (C : \ xampp \ htdocs \ hse \ vendor \ composer /../../ app / Buildings.php) : 스트림을 열지 못했습니다. (0) | 2020.10.23 |
댓글