gpt4 book ai didi

c++ - 如何修复: "MySQL_Prepared_ResultSet::getInt: invalid value of ' columnIndex"

转载 作者:行者123 更新时间:2023-11-29 16:00:02 24 4
gpt4 key购买 nike

当我尝试从 C++ 项目中的 MySQL 数据库中选择一些行时,出现错误:

MySQL error code: 0 MySQL_Prepared_ResultSet::getInt: invalid value of 'columnIndex'  

在数据库中,列“id”的数据类型为 INT(11)。

我从其他列获取字符串值没有问题。我还尝试将字符串值(列的名称)以及列的编号设置为函数 getInt() 中的参数。

这是我的代码:

    preparedStatementPtr = shared_ptr < sql::PreparedStatement >( connectionPtr->prepareStatement(
"SELECT description, category FROM plans WHERE date = ? " ) );
string d = boost::gregorian::to_iso_extended_string( date );
preparedStatementPtr->setString( 1, d );
preparedStatementPtr->execute();
resultSetPtr = shared_ptr < ResultSet >( preparedStatementPtr->getResultSet() );

int id;
string description;
string category;

while ( resultSetPtr->next() )
{
id = resultSetPtr->getInt( "id" );
description = resultSetPtr->getString( "description" );
category = resultSetPtr->getString( "category" );
plans.emplace_back( std::shared_ptr < Plan >( new Plan( id, description, category, date) ) );
}

我应该怎么做才能从“id”列中获取值?预先感谢您提供的任何帮助。

编辑:当我不使用准备好的语句时获取 id 有效,如以下代码所示:

    resultSetPtr = shared_ptr < sql::ResultSet > ( statementPtr->executeQuery (
"SELECT * FROM plans WHERE date = '2019-05-22'" ) );


while ( resultSetPtr->next() )
{
id = resultSetPtr->getInt( "id" );
description = resultSetPtr->getString( "description" );
category = resultSetPtr->getString( "category" );
plans.emplace_back( std::shared_ptr < Plan >( new Plan( id, description, category, date ) ) );
}

最佳答案

我刚刚解决了这个问题。我忘记了 SELECT 语句中的“id”列。

关于c++ - 如何修复: "MySQL_Prepared_ResultSet::getInt: invalid value of ' columnIndex",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56257473/

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