2016-09-16 1 views
0

을 가져하지 INFILE :LOAD 데이터 I 보이는 CSV 파일이 날짜

0000183322016-08-29 00 : 00 : 00,2016-08-29 00 : 00 : 00,9999, 부품 만 판매, 0, DMS Maritime Pty Ltd, xyz ,, 00000250,1971-01-01 00 : 00,1971-01-01 00 : 00 : 218335, 부품 판매, 9999

은 그 때 나는 테이블

$fieldseparator = ","; 
$lineseparator = "\n"; 
$csvfile = "test.csv"; 
$dbtable = "res"; 

$affectedRows = $pdo->exec(" 
LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE `$dbtable` 
FIELDS TERMINATED BY ".$pdo->quote($fieldseparator)." 
LINES TERMINATED BY ".$pdo->quote($lineseparator)); 

에이 CSV를 가져 오는 PHP 스크립트를하지만 DB 탭에서 다시 검사 할 때 le, 값 2016-08-29 00:00:00 (column은 datetime)은 0000-00-00 00:00:00, 218335 및 9999는 0으로 설정되고 이벤트 열은 int (11)로 설정됩니다. 정확하게 쓰여졌습니다. 나는 csv와 txt로 해봤고 같은 문제가있다.

이유를 알고 계십니까?

편집 :

CREATE TABLE `res` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`name` text, 
`start` datetime DEFAULT NULL, 
`end` datetime DEFAULT NULL, 
`room_id` int(11) DEFAULT NULL, 
`status` varchar(30) DEFAULT NULL, 
`paid` int(11) DEFAULT NULL, 
`customer` varchar(50) DEFAULT NULL, 
`name_ship` varchar(50) DEFAULT NULL, 
`equipment` text, 
`port` varchar(30) DEFAULT NULL, 
`ETA` datetime DEFAULT NULL, 
`ETD` datetime DEFAULT NULL, 
`service_id` int(11) NOT NULL, 
`service_classification` varchar(30) DEFAULT NULL, 
`partners_id` int(10) DEFAULT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=5392 DEFAULT CHARSET=latin1 
+0

가 테이블 (TABLE 문을 만들 수 있습니다.) – CBroe

+0

PRIMARY KEY 모습을 우리에게 보여 ('id') ) 엔진은 = InnoDB는 AUTO_INCREMENT = 5392 DEFAULT CHARSET = 라틴 – Burco

+0

그 의견에 읽기 어려운 질문에 편집하십시오 . – CBroe

답변

2

파일이 utf16으로 인코딩되어 있기 때문에 mysql이 자체 검사하지 않습니다. 테이블 소스 코드에서 utf16 문자열을 사용하고 싶지 않다는 것을 나타내므로 데이터 소스에서이를 변경하거나 mysql에 파일의 인코딩을 알리십시오. 파일에 대한

는 다음과 같은 작업을해야합니다 : 그것은 파일의 characterset을 설정하고 유니 코드의 구분 기호를 정의

LOAD DATA LOCAL INFILE 'test.csv' INTO TABLE res 
CHARACTER SET utf16le 
FIELDS TERMINATED BY ';\0' 
LINES TERMINATED BY '\r\0\n\0'; 

. 단지 '\n\0'도 사용할 수 있습니다.

+0

고맙습니다. 항상 문자 세트를 추가하십시오. – Burco

0


왜 실행하지 : 경고를 표시 MySQL의 cmd를 및 정확한 오류가 무엇을 참조하십시오.
https://dev.mysql.com/doc/refman/5.5/en/show-warnings.html

+0

오류 메시지가 없습니다. 가져 오기가 성공했습니다. – Burco

+0

다음을 시도해주십시오 : LOAD DATA LOCAL INFILE 'test.csv' ','LINES TERMINATED BY ','LINES TERMINATED BY ''(ID, 이름, 시작, 끝, room_id, 상태, 유료, 고객, 포트, ETA, ETD, service_id, service_classification, partners_id) – ahammar

+0

당신의 CSV 파일을 보내 주실 수 있습니까? 귀하의 예를 테스트 해본 결과 – ahammar

관련 문제