C++中的动态MySQL查询
我有一个疑问->C++中的动态MySQL查询,c++,mysql,C++,Mysql,我有一个疑问-> LOAD DATA INFILE 'hello2.csv' INTO TABLE failure_report.master_entry FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 2 ROWS 在C++中,我有->< /P> string h1="hello2.csv"; string h2; ostringstream strstr; strstr <<
LOAD DATA INFILE 'hello2.csv'
INTO TABLE failure_report.master_entry
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 2 ROWS
在C++中,我有->< /P>
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());
myqLyQuy确实返回0,但数据库未更新。myqLyBoeLoad为null。 您在单词和撇号之间缺少空格,并且在\n中逃逸,它在C++中也有特殊含义,只有文字新行被发送到MySQL服务器,您必须使用\n,尝试使用:
strstr << "LOAD DATA INFILE '" << h1 << "' "
<< "INTO TABLE failure_report.master_entry "
<< "FIELDS TERMINATED BY ',' "
<< "ENCLOSED BY '\"' "
<< "LINES TERMINATED BY '\\n' "
<< "IGNORE 2 ROWS";
还要注意每行末尾的空格
将来使用printfExecuting查询:%s、h2和用于调试。我认为问题在于您在语句周围使用开首引号和结束引号的方式,以及执行caping
请提供从现在开始工作的输出现在mysql\u查询返回0,但我的数据库未得到更新。这应该是要回答的注释,而不是问题:但无论如何,PrintFeExecuting查询的输出是什么:%s,h2或std::我可以把一些事情修好,但现在出现了新问题。请看question@user3819404如果直接从mysql客户端运行查询,会发生什么?你提交数据了吗?是的,如果我在mysql客户端中运行,它工作得很好。如果你添加mysql_querycon,commit;;,会怎么样@user3819404它报告的受影响行数如何,显示警告如何?
strstr << "LOAD DATA INFILE '" << h1 << "' INTO TABLE failure_report.master_entry FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\\n' ignore 2 rows";