Как передать переменные C ++ для вставки из C ++ с помощью Mysql ++ - PullRequest
0 голосов
/ 21 сентября 2010

Я борюсь с кодом от нескольких дней, может кто-нибудь помочь

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);

но это тоже никогда не работало любезно помогите

Ответы [ 2 ]

4 голосов
/ 21 сентября 2010

Я бы, вероятно, использовал поток строк для сборки строки:

std::ostringstream query;

query << "Insert into publish values('" << str << "', 'NO')";
mysql_query(&mysql, query.str().c_str());
0 голосов
/ 18 августа 2015

Это наверняка сработает;)

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