我有一个查询 - >
LOAD DATA INFILE 'hello2.csv'
INTO TABLE failure_report.master_entry
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 2 ROWS
在c ++中我有 - >
string h1="hello2.csv";
string h2;
ostringstream strstr;
strstr << "LOAD DATA INFILE'" << h1 << "'INTO TABLE failure_report.master_entry FIELDS TERMINATED BY'"<<","<<"'ENCLOSED BY '"<<'"'<<"'LINES TERMINATED BY '"<<"\n"<<" ' ignore 2 rows";
h2=strstr.str();
int query_state=mysql_query(con,h2.c_str());
mysql_query确实返回0但数据库未更新.mysql_error为null。
答案 0 :(得分:0)
你缺少一些单词和撇号'
之间的空格和\n
的转义(它在C ++中也有特殊含义,只有文字新行被发送到mysql服务器,你必须使用{{ 1}}),尝试使用:
\\n
另请注意行尾的每个strstr << "LOAD DATA INFILE '" << h1 << "' "
<< "INTO TABLE failure_report.master_entry "
<< "FIELDS TERMINATED BY ',' "
<< "ENCLOSED BY '\"' "
<< "LINES TERMINATED BY '\\n' "
<< "IGNORE 2 ROWS";
前的空格。
将来使用"
和mysql_error()
进行调试。
答案 1 :(得分:0)
我认为问题在于您使用围绕语句打开和关闭'
引号的方式,并且重新开始"
。
strstr << "LOAD DATA INFILE '" << h1 << "' INTO TABLE failure_report.master_entry FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\\n' ignore 2 rows";