我在将CSV文件加载到MySQL数据库时遇到问题。这是我的代码:
$sql =@"
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"参数:"命令执行期间遇到致命错误。" 无论我做什么。
但是当我在phpmyadmin中使用CSV中的实际值运行相同的load data infile
块时,一切正常。数据被插入MySQL。
如果我将load data infile
替换为普通insert
,则代码执行正常。
答案 0 :(得分:1)
我必须添加
Allow User Variables=True
进入MySQL DB连接字符串:
$Conn.ConnectionString = "SERVER=mysqlserver.localhost;DATABASE=xxx;" +
"UID=xxx;PWD=xxx;Allow User Variables=True"
并正确执行代码并将CSV数据插入MySQL。