这是简单的代码
$loadsql = "LOAD DATA LOCAL INFILE '$target_path'
INTO TABLE `test`
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
IGNORE 1 LINES";
$result = mysql_query($loadsql);
代码运作良好。但我只是好奇我怎么知道csv中是否存在一行错误,它是什么行?
答案 0 :(得分:3)
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
使用LOAD DATA LOCAL INFILE,数据解释和重复键 错误成为警告,操作继续,因为服务器 没有办法停止在中间传输文件 操作。对于重复键错误,这与IGNORE相同 指定。 IGNORE将在本节后面进一步解释。
您确定没有报告警告吗?要查看它们,请尝试在mysql控制台中使用SHOW WARNINGS
。
PS /警告附加到会话 - 您只能从加载数据文件的会话中显示。< / p>
PS2 /就像在c中一样,MySQL 警告与错误不同,因为它们不会停止当前操作。但是他们通常表明出了问题,应该对它们进行调查。至于LOAD DATA INFILE
的具体情况,正如文档清楚地说明的那样,报告警告而不是错误的选择仅仅取决于服务器没有(优雅)方式停止文件传输的事实它已经开始了。