我尝试使用模板查询来构造sql查询。下面是示例代码:
unsigned int version = 2;
try {
// key_version is INT UNSIGNED
mysqlpp::Query query = conn->query("SELECT * FROM agentlist WHERE key_version != %0q");
mysqlpp::StoreQueryResult res = query.store(version);
// string type param also caused the same problem
// mysqlpp::StoreQueryResult res = query.store(std::to_string(version));
} catch (const exception &ex) {
// deal with exceptions
}代码将转到catch部件。ex.what():
您的SQL语法出现错误;请检查与您的MySQL服务器版本对应的手册,以便在第1行使用接近\'2\‘的正确语法。
我认为它是由SQLQueryParms类型引起的,但是教程和文档都没有显示出任何解决这个问题的方法。
顺便问一下,如何得到解析的查询字符串(替换模板参数)?我试过query.str(version),但它和query.str()一样。
发布于 2017-10-16 10:03:43
是我的错。忘记了一个重要的函数query.parse()。
现在一切都成功了。
https://stackoverflow.com/questions/46767045
复制相似问题