我正在處理一個組件,在其中將數據從CSV文件加載到mySQL數據庫。我正在使用LOAD DATA LOCAL INFILE。除了一件事以外,它效果很好。在Joomla中,查詢替換了表中的所有數據。 (它截斷表格,然後添加新的數據)。我只是想讓它在表格底部插入新行。LOAD DATA LOCAL INFILE在Joomla中無法正常工作。替換而不是在表中追加數據
下面是我使用的代碼:
$db = JFactory::getDbo();
$loaddata_query = "LOAD DATA LOCAL INFILE 'c:/data/mydata.csv'"
."\n INTO TABLE myDataTable"
."\n FIELDS TERMINATED BY ','"
."\n OPTIONALLY ENCLOSED BY '" . "\"" . "'"
."\n LINES TERMINATED BY '\\n'"
."\n IGNORE 1 LINES"
."\n (column1,column2,column3);
$db->setQuery($loaddata_query);
$result = $db->query();
就像我說的,這能很好的完成導入數據,但替換所有的記錄。但是,如果我回顯$ loaddata_query並將其複製並粘貼到phpMyAdmin中,它可以正常工作。這是迴應的查詢:
LOAD DATA LOCAL INFILE 'c:/data/mydata.csv'
TO TABLE myDataTable
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(column1,column2,column3)
我似乎無法弄清楚區別。有沒有人有建議?
在此先感謝您的幫助!
什麼版本的Joomla? – Elin
我使用Joomla 3.2.3 – mb87
抱歉打擾大家。這個錯誤是自己造成的。對於另一個應用程序(我從中複製代碼),我包含了一些代碼來截斷表。這是導致問題的原因,而不是LOAD DATA LOCAL INFILE命令。 Doh !!! – mb87