我的CSV的最后一行是
58,5/3/17,8:30 PM,Jazz L6/7,0,,Thursday,1074,black,
最后一个逗号是因为最后一个字段中没有任何内容。但是在最后一行之后没有回车。
但我收到错误"row 59 doesn't contain data for all columns"
所以,如果我去更改最后一行,请阅读:
58,5/3/18,8:30 PM,Jazz L6/7,0,,Thursday,1074,black,test
或者我必须回车...它会起作用。
这是我生成查询的PHP代码:
$query = <<<eof
TRUNCATE TABLE `eventstmp`;
LOAD DATA INFILE '$target'
INTO TABLE `eventstmp`
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(EventCode,EventDate,GameTime,TeamName1,Versus, TeamName2, AgeGroup, Photographer, TextDescription, Location);
delete from `eventstmp` limit 1;
update `eventstmp` set `EventCode`=lpad(`EventCode`,3,'0');
update `eventstmp` set `Import`=0 where exists(select 1 from `events` join `vwactiveevent` on '$MainEventID'=`events`.`MainEventID` where `events`.`Eve
ntCode`=`eventstmp`.`EventCode`);
eof;
我在两个应该相同的不同数据库上尝试过这个。看起来每个数据库上的eventstmp表的描述是相同的。每个数据库的SQL模式也是一样的。我不确定我错过了什么。
我已经尝试更改'LINES TERMINATED BY' from \n to \r\n.
我也试过转义\所以它会是:LINES TERMINATED BY '\\n'
不确定还有什么可以尝试