簡體   English   中英

MySQL通過LOAD DATA INFILE從CSV文件導入數據不起作用

[英]MySQL import data from a csv file via LOAD DATA INFILE does not work

我非常努力地使此命令起作用。 沒事 這是我的問題:

我有一個.csv文件,該文件要上傳到服務器上,我要在該服務器上運行腳本以將所有數據導入到MySQL表中。 csv看起來像這樣:

id;herstellernr;hersteller;firmenname;url
123;ABC;Hersteller1;Firmenname1;http://www.test.com
234;DEF;Hersteller2;Firmenname2;http://www.test2.de
345;GHI;Hersteller3;Firmenname3;http://www.test3.net

... 等等。

上載csv文件后,我首先要創建一個新表(臨時表),在該表中應導入我的數據。 創建表的過程沒有任何問題; 沒有從csv文件導入我的數據。

這是我的腳本(在上傳腳本之后):

$temp = $pdo->prepare("

CREATE TABLE ".$name."
(
   id int(11),
   herstellernr varchar(3),
   hersteller varchar(150),
   firmenname varchar(255),
   url varchar(100),
   PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

LOAD DATA INFILE '_csv/".$filename."' INTO TABLE ".$name."
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(id, herstellernr, hersteller, firmenname, url)

");

$temp->execute(array());

CREATE TABLE有效,但是之后我的LOAD DATA INFILE沒有任何反應

加:我真的不知道它應該是'\\ n'還是'\\ r \\ n'。 無論如何,這兩種情況都不起作用。

我真的很努力,我確定語法是正確的。 但是我做不到。 你能幫我嗎? 謝謝

您不能對PDO使用多個查詢。 您需要將它們分解為單獨的查詢。 由於您沒有使用綁定參數,因此也可以跳過prepare:

$pdo->query("CREATE TABLE ".$name."
(
   id int(11),
   herstellernr varchar(3),
   hersteller varchar(150),
   firmenname varchar(255),
   url varchar(100),
   PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");

$pdo->query("LOAD DATA INFILE '_csv/".$filename."' INTO TABLE ".$name."
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(id, herstellernr, hersteller, firmenname, url)");

暫無
暫無

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

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