gpt4 book ai didi

c++ - 使用mysql++库的问题

转载 作者:搜寻专家 更新时间:2023-10-31 00:22:02 25 4
gpt4 key购买 nike

我已经阅读了教程,大致了解了它是如何工作的: http://tangentsoft.net/mysql++/doc/html/userman/tutorial.html#simple

我正在尝试构建此 mysql++ 代码,但出现错误:

std::ostringstream query3;
query3<<"select pipe_id from pipe where version_id='"<<id<<"'";
std::storeQueryResult ares=query3.store();

for(size_t i=0;i<ares.num_rows();i++)
cout<<ares[i]["version_id"]<<ares[i]["pipe_id"]<<std::endl;

mysql_query(&mysql,query3.str().c_str());

错误是store 不是ostringstream 的成员。我不确定如何解决这个问题。


嗨梅林,

感谢您提供代码并查看我的问题。

我试过上面的代码,但还是报错

错误:请求'connection'中的成员'query'是非类类型'MYSQL*'

在这行代码上

// Construct a query object with the query string mysqlpp::Query query = 
connection.query(query_string);

请帮助我哪里出错了?

最佳答案

问题是您必须使用 mysql++ 查询对象来执行查询,而不是 ostringstream。 ostringstream 只允许您构建查询字符串,但不会让您执行查询。

有一个教程显示了基本用法: http://tangentsoft.net/mysql++/doc/html/userman/tutorial.html#simple

要从您的代码获得有效的查询,您需要采用动态查询,将其转换为字符串,并使用它来构建 mysql++ 查询对象。

// todo: create the connection here

// Construct the query string. You were already doing this in your code
std::ostringstream query_builder;
query_builder << "select pipe_id from pipe where version_id='" << id << "'";

// Convert the ostringstream to a string
std::string query_string = query_builder.str();

// Construct a query object with the query string
mysqlpp::Query query = connection.query(query_string);

// Perform the query
mysqlpp::StoreQueryResult result = query.store();
for(size_t i = 0; i < result.num_rows(); i++)
std::cout << result[i]["version_id"] << result[i]["pipe_id"] << std::endl;

关于c++ - 使用mysql++库的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3781880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com