我正在php中的一个小项目,将csv文件导入到MySQL表中。我目前仅使用一个小的测试表和csv,但是我不断向我抛出错误,我似乎无法发现它。我查看了其他人的解决方案,尽管存在差异,但我没有发现任何应阻止导入的内容。

查询如下:

LOAD DATA LOCAL INFILE '".$this->upload_name."'
IGNORE INTO TABLE `testings`
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
ESCAPED BY '\\'
LINES TERMINATED BY '\\n'


CVS如下

bob,builder,10,a
john,smith,5,a
happy,camper,8,a
johhny,ball,12,a


表如下

fname  varchar(100)
sname  varchar(100)
copies  int(8)
nowt  varchar(100)


错误如下

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\n'' at line 6


当我将头伸到这里尝试解决问题时,任何帮助将不胜感激。

最佳答案

表名不要用引号引起来。通常使用反引号,如果不是MySQL保留关键字,则不使用反引号。

"LOAD DATA
LOCAL INFILE " . $this->upload_name . "
IGNORE INTO TABLE `testings`
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
ESCAPED BY '\\'
LINES TERMINATED BY '\\n'"

关于php - PHP和MySQL-LOAD DATA LOCAL问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16713517/

10-12 17:19
查看更多