我检查了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();
}
}
我的问题是:我在功能中做错了什么,以免崩溃?
答案 0 :(得分:0)
经过一些测试后,我发现了如何修复它...我只需要从字符串更改为const char *。