我只想让它更新server_record。不要发送任何混乱。我可以删除所以它不要说“在线玩家的新记录是:2839”。我可以删除query.str(“”)下的所有内容吗?我不知道什么是char缓冲区[50];做。我不想弄乱任何东西。你如何在c ++中获得当前时间?我也想在表格中插入当前时间。设置记录的时间。
void Game::checkPlayersRecord()
{
if(getPlayersOnline() > lastPlayersRecord){
Database* db = Database::instance();
DBQuery query;
lastPlayersRecord = getPlayersOnline();
query << "UPDATE `server_record` SET `record` = " << lastPlayersRecord << ";";
db->executeQuery(query.str());
query.str("");
char buffer[50];
sprintf(buffer, "New record of players online is: %d", lastPlayersRecord);
AutoList<Player>::listiterator it = Player::listPlayer.list.begin();
while(it != Player::listPlayer.list.end()){
(*it).second->sendTextMessage(MSG_EVENT_ADVANCE, buffer);
++it;
}
}
}
答案 0 :(得分:4)
最好让那些知道这些东西的人。你所要求的并不完全是火箭科学,但如果没有经验的人完成,你仍然很容易出错。
答案 1 :(得分:0)
经过随意检查,是的,删除(但不包括)query.str("");
下的所有内容。希望您有一种测试方法,然后再推送此更改并打破应用。 :)
答案 2 :(得分:0)
这些块的作用非常明显,所以除非它们有一些隐藏的东西,否则这是用记录值更新数据库的部分。
void Game::checkPlayersRecord()
{
if(getPlayersOnline() > lastPlayersRecord){
Database* db = Database::instance();
DBQuery query;
lastPlayersRecord = getPlayersOnline();
query << "UPDATE `server_record` SET `record` = " << lastPlayersRecord << ";";
db->executeQuery(query.str());
query.str("");
}
}