簡體   English   中英

PHP / Mysql加載數據本地文件

[英]PHP/Mysql Load Data Local 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服務器。 我在這里想念什么?

根據MySQL文檔,Check是保留字。

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

check是MySQL中的保留字( http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html )。 您應該將其括在sql語句的反引號(`)中:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM