我检查了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();
}
}
我的问题是:我在函数中做错了什么,以至于它崩溃了?
经过一些测试,我找到了如何修复它…我只需要把string改成const char *