MySQL加载数据infile函数和csv文件的格式

Emc*_*cho 4 php mysql csv

所以我需要一些帮助,我坚持了好几个小时.所以我在PHP中有这个数据数组,我使用fputcsv函数写入CSV文件.现在数据被保存到CSV文件中,格式如下:

Becoming Human, "becoming_human_uk", "2011", 
Bed of Roses, "bed_of_roses", "2008", 
Bed of Roses, "Bed_of_Roses_2008", "2008", 
Bedlam, "bedlam", "2011", 
Run Code Online (Sandbox Code Playgroud)

这持续了大约10k行.到目前为止,这一切都是笨拙的.但是现在我想将所有这些数据从CSV导入到我的数据库表中.为此,我使用以下格式的LOAD DATA INFILE mysql函数:

$sql="LOAD DATA INFILE 'path/series.csv' INTO TABLE series FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\\r\\n' (title, link, year)";
Run Code Online (Sandbox Code Playgroud)

现在问题出在这里.只有一行插入数据库及其第一行.我怀疑问题在于这些可选参数,如TERMINATED BY或ENCLOSED BY.我把字段放在可选的括号中,因为第一个字段没有用""括起来,而另外两个字段用.字段也以(,)结束,所以我猜这没关系.这只留下线路终端,我不知道这是否正确.这可能还有其他问题.或者我可以更好地将数据输入格式化为CSV,以便所有字段都以相同的方式包含在内.所以,如果有人能帮我发现问题,我将非常感激.谢谢.

Bil*_*win 6

我在MySQL 5.5.31中测试过这个工作:

mysql> LOAD DATA LOCAL INFILE 'series.csv' INTO TABLE series 
  FIELDS TERMINATED BY ','
  OPTIONALLY ENCLOSED BY '\"' 
  LINES TERMINATED BY '\n' 
  (title, link, year);
Query OK, 4 rows affected (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

我不得不编辑csv文件:

  • 不要在逗号后面加空格.

  • 不要在行尾添加逗号.

  • \r\n如果您的文件仅包含\n换行符,请不要使用.

  • 不要在行尾添加空格.

  • 我在MySQL客户端测试,而不是PHP,所以我删除了双反斜杠.