“加载数据infile”插入数据库
问题描述:
我有一个加载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
那么代码执行的很好。
答
我不得不添加
Allow User Variables=True
到MySQL数据库连接字符串:
$Conn.ConnectionString = "SERVER=mysqlserver.localhost;DATABASE=xxx;" +
"UID=xxx;PWD=xxx;Allow User Variables=True"
和代码正确执行和插入CSV数据到MySQL。