我正在尝试将数据从csv加载到mysql中。列的顺序不正确,有些列被跳过。日期格式也不正确
数据如下所示:
日期,打开,高,低,关闭,调整关闭,卷4/3/2006,10.01,10.01,10.01,10.01,7.236886,0 4/4/2006,10.07,10.07,10.07,7.280261,0
我的代码如下所示:
$query = <<<eof
LOAD DATA INFILE '$filename'
INTO TABLE `$table`
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(@date_str, @open, @high, @low, @close, @adjclose, @volume)
SET `date` = STR_TO_DATE(@date_str, '%c/%e/%Y'),
SET symbol = $symbol,
SET nav = @close;
eof;
我得到的错误是:
sql错误:将数据infle'd:/website/finance/csv/abndx.csv'加载到表中 mutual_fund_history
以“”结尾的字段,“”以“”结尾的行忽略1行(@date\u str,@open,@high,@low,@close,@adjclose,@volume)集 date
=str_to_date(@date_str,'%c/%e/%y'),set symbol=abndx,set nav=@close;sql错误#:1064-您的sql语法有错误;查看与mysql服务器版本相对应的手册,在第8行的“set symbol=abndx,set nav=@close”附近使用正确的语法…
我被绊倒了。谢谢你的帮助。
更新:我尝试在“$symbol”周围加单引号,因为它是一个字符串,但仍然出现错误。
注意,我跟随这篇文章来指导我。
1条答案
按热度按时间jdg4fx2g1#
好的,是从那个帖子上得到的。只能使用一个set语句,不同的变量必须用逗号分隔,因此应该是: