【发布时间】:2017-01-15 21:09:07
【问题描述】:
我正在尝试在不使用 c++ 中的 mysql 连接器类的情况下更新 mysql 数据库。但我不知道如何将长整数添加到查询将接受的字符串中。
#define CONVERSION 16
long myCounter = 0 ;
long gallons = 0;
gallons = myCounter / CONVERSION;
string sql = ("UPDATE utilityroom.Sprinklers SET "
"gallons='@gallons' WHERE label='PUMP';");
query_state = mysql_query(connection, sql);
result = mysql_store_result(connection);
它在查询中的第二个参数处一直失败。
错误:无法将参数“2”的“std::string {aka std::basic_string}”转换为“const char*”到“int mysql_query(MYSQL*, const char*)”
编辑:
我讨厌 c++ 处理字符串的方式。我不明白为什么每个字符串都必须转换为类元素!
这是我为使其正常工作所做的更改:
#include <sstream>
ostringstream strstr;
strstr << "UPDATE utilityroom.Sprinklers SET gallons='" << gallons << "' WHERE label='PUMP';";
string sql = strstr.str();
query_state = mysql_query(connection, sql.c_str());
【问题讨论】: