2014-12-13 163 views
0

我有一個加載CSV文件到MySQL數據庫的問題。這裏是我的代碼:「加載數據infile」插入數據庫

$sql [email protected]" 
LOAD DATA LOCAL INFILE 'e:\\03-06-44.txt' INTO TABLE monitor.app_meter CHARACTER SET UTF8   FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' 
IGNORE 1 LINES 
(name,total,@var1,@var2) 
SET start = STR_TO_DATE(@var1, '%m/%d/%Y %r'),end = STR_TO_DATE(@var2, '%m/%d/%Y %r') 

"@ 


$MysqlQuery.CommandText = $sql 
$MysqlQuery.ExecuteNonQuery() 

我得到異常調用「的ExecuteNonQuery」和「0」的說法(S):「命令執行過程中遇到致命錯誤。」無論我做什麼。

但是,當我運行相同的load data infile塊與實際值從CSV裏面phpmyadmin,一切工作正常。數據被插入到MySQL中。

如果我用正常的insert代替load data infile那麼代碼執行的很好。

回答

1

我不得不添加

Allow User Variables=True 

到MySQL數據庫連接字符串:

$Conn.ConnectionString = "SERVER=mysqlserver.localhost;DATABASE=xxx;" + 
         "UID=xxx;PWD=xxx;Allow User Variables=True"

和代碼正確執行和插入CSV數據到MySQL。