我正在运行一个SQL语句来读取一个CSV文件(在这种情况下只有一个带有标题的列)并将其导入我的数据库,在那里通过后续的SQL语句对数据进行进一步的操作。
但是,我似乎无法通过PHP网站直接在MySQL Workbench和我的PHP网站本地以及我网络中的另一台Mac上将CSV文件加载到我的数据库中。
有趣的是查询似乎成功运行,因为我在任何平台或计算机上都没有出现任何错误,但没有行受到影响。
我在尝试解决问题方面做了大量工作。这是我当前的SQL代码,然后我将讨论我尝试过的内容。
LOAD DATA INFILE '/Users/Josh/Desktop/testcsv.csv'
INTO TABLE joinTest
FIELDS
TERMINATED BY ','
ENCLOSED BY '"'
LINES
TERMINATED BY '\r\n'
IGNORE 1 LINES
(interestName);
所以这是我在MySQL Workbench中尝试的。在PHP中,我有一个上传器和变量,用于存储tmp文件的位置。这样就可以了,并且看起来很好看。
我已尝试将其作为
运行LOAD DATA INFILE
但它仍然不会影响任何行(成功运行)。我还将TERMINATED BY
中的LINES
更改为\n
,但仍然不会影响任何行。
我无法理解为什么它不会影响任何行,因为我的CSV文件可供所有人阅读,并且格式正确(在Excel中创建并保存为cvs格式)。
有谁知道潜在的问题是什么?
如果需要更多信息,我会尽快回复。感谢。
答案 0 :(得分:0)
是的,所以我发现Mac使用不同的Line Endings到Unix&视窗。我在Sublime Text 3中打开了CSV,发现可以在视图选项中更改行结尾。
我将其设置为Unix,保存文件和\ n的终止符。不幸的是,Sublime文本没有将行结尾显示为可见字符,所以这纯粹是偶然的。
我希望这可以帮助遇到此问题的其他任何人,确保CSV的行结尾与您在LOAD DATA查询中指定的行结尾相匹配。