C ++ Wierd崩溃函数调用

时间:2014-03-14 13:21:48

标签: c++ mysql world-of-warcraft

我检查了GetCharacterRankINT()的返回值,它返回了正确的值(1)。当我使用rankNum 1测试查询时,我得到了正确的结果,但每当我尝试使用GetCharacterRankSTR()时,它都会崩溃并发生以下崩溃转储:http://fbe.am/rwl(密码:stackoverflow)。我试图将函数的类型从string设置为std :: string,但它仍然无法正常工作。 MySQL表有 8 列,或者该字段有8个条目。因此,错误与字段数量无关。

string Player::GetCharacterRankSTR()
{
    QueryResult* res = CharacterDatabase.Query("SELECT * FROM ars_ranks WHERE rankNum = %u LIMIT 1;", GetCharacterRankINT());
    if (!res)
    {
        return "Error";
    }
    else
    {
        Field* fld = res->Fetch();
        return fld[3].GetString();
    }
}

我的问题是:我在功能中做错了什么,以免崩溃?

1 个答案:

答案 0 :(得分:0)

经过一些测试后,我发现了如何修复它...我只需要从字符串更改为const char *。