2010-09-21 20 views
0

我从几天的代码挣扎任何人都可以帮助如何通过C++变量++刀片C的使用MySQL ++

std::string str=uri_req1.substr(found+1); 
char query[2000]; 
sprintf(query,"Insert into publish VALUES('%s','NO')",str); 

我得到以下警告和值表中没有插入

warning: cannot pass objects of non-POD type ‘struct std::string’ 
through ‘...’; call will abort at runtime 
warning: format ‘%s’ expects type ‘char*’, but 
argument 3 has type ‘int’ 

我想另一件事是

string query; 
query="Insert into publish values('"; 
query+=str; 
query+="','NO')"; 
    mysql_query(&mysql,query); 

但这也从来没有工作 きNDLY帮助

+0

它告诉你,它不喜欢'string'但确实像'char *'。为什么不直接调用'query.c_str()'? – 2010-09-21 05:24:40

回答

4

我可能会使用一个字符串流组装字符串:

std::ostringstream query; 

query << "Insert into publish values('" << str << "', 'NO')"; 
mysql_query(&mysql, query.str().c_str()); 
0

这必将工作;)

string query; 
query="Insert into publish values('"; 
query+=str; 
query+="','NO')"; 
mysql_query(&mysql,query.c_str());