PHP/Mysql加载数据本地infile

问题描述:

我已经尝试了所有我能想到的,但由于某种原因,我无法得到这个工作。PHP/Mysql加载数据本地infile

我有一段PHP代码,将本地存储的CSV文件加载到MySQL数据库中。它完全在一个脚本:

$query = 'LOAD DATA LOCAL INFILE \''.$arp_input.'\' INTO TABLE arp_import FIELDS TERMINATED BY \',\' OPTIONALLY ENCLOSED BY \'"\' LINES TERMINATED BY \'\r\n\' (not_used,account_number,check_serial,issue_date,amount,transaction_code,additional_text)'; 

不过,我需要做同样的事情(加载CSV)在另一个脚本,它本质上是一回事,但会产生不同的格式。下面是该查询:

$query = 'LOAD DATA LOCAL INFILE \''.$ap_input.'\' INTO TABLE ap_import FIELDS TERMINATED BY \',\' OPTIONALLY ENCLOSED BY \'"\' LINES TERMINATED BY \'\r\n\' (account_number,check,paiddate,amount)'; 

但是,当我运行上面的查询第二个脚本,我得到这个错误:当我拿出领域在第二查询的末尾列出

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 'check,paiddate,amount)' at line 1 

,它只从文件中导入一行,即使在我尝试\ n分隔符,\ r和\ r \ n时也是如此。

我尝试了所有我能想到的。这两个PHP脚本在同一台服务器上运行,它们都在访问相同的远程MySQL服务器。我在这里错过了什么?

+0

'$ ap_input' v.s. '$ arp_input'('R')?.是那个意图,或者可能是$ ap_input一个类型,你真的想''INFILE''INTO ...'? –

根据MySQL文档检查是一个保留字。

http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

+0

啊,非常简单。就是这样。现在我需要弄清楚为什么只有一条线。 –

check MySQL中的保留字(http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html)。你应该把它放在你的sql语句中的back-ticks(`)中: