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

标签 c++ mysql

当我尝试从 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/

相关文章:

c++ - 在这种情况下 unique_ptr 的行为应该是什么?

c++ - 通过 fscanf() 获取文本文件中的所有字符返回无效的字符计数

php - 这个 php 脚本中会发生太多连接吗? (mysql_select_db)

MySQL 连接/联合结果来自更多表

MySQL 计算多个分组列上的行数

C++ Apache2 模块未加载

c++ - 对默认参数使用右值引用

c++ - 返回指向子类的指针的好方法

php - 我有电子邮件和密码 session 变量,但无法获取其他 session 变量(PHP、MySQL)

MySQL 建表错误 #1005