MySQL R38 - UPDATE -
AndreOliveira - 26.04.2014
Salve pessoal, fiz um sistema de registro/login usando MySQL porйm na hora de salvar os dados no OnPlayerDisconnect nгo consigo de jeito nenhum fazer o UPDATE funcionar. Nгo da erro, porйm nгo salva. Meu OnPlayerDisconnect:
Код:
public OnPlayerDisconnect(playerid)
{
new salvarPlayerQuery[500];
mysql_format(conn, salvarPlayerQuery, sizeof(salvarPlayerQuery), "UPDATE players SET usuario='%e', senha='%e', skin=%i, dinheiro=%i, admin_level=%i", PlayerData[playerid][usuario], PlayerData[playerid][senha], PlayerData[playerid][skin], PlayerData[playerid][dinheiro], PlayerData[playerid][admin_level]);
mysql_query(conn, salvarPlayerQuery);
if(mysql_errno() != 0) print("Erro");
return 1;
}
O jogador desconecta porйm nгo faz alteraзхes no banco, consigo inserir/selecionar dados normalmente com essa connectionHandle
Re: MySQL R38 - UPDATE -
djgabrielway - 26.04.2014
Ve o meu e tenta mudar o jeito de salvar no Disconect de um jeito diferente aqui no meu funfa de boa so vc adapitar
Код:
public OnPlayerDisconnect(playerid, reason)
{
if(Logged[playerid] == 1)
{
new money = GetPlayerMoney(playerid);
new query[300], pname[24];
GetPlayerName(playerid, pname, 24);
format(query, sizeof(query), "UPDATE playerdata SET admin=%d, money=%d, vip=%d, morreu=%d, matou=%d, WHERE user='%s'",
PlayerInfo[playerid][pAdmin],
money,
PlayerInfo[playerid][pVIP],
PlayerInfo[playerid][pMorreu],
PlayerInfo[playerid][pMatou],
pname);
mysql_query(query);
}
return 1;
}
espero ter ajudado
Re: MySQL R38 - UPDATE -
Locky_ - 26.04.2014
pawn Код:
mysql_query(conn, salvarPlayerQuery);
Use assim e tente
pawn Код:
mysql_query(conn, salvarPlayerQuery, false);
Isso por que no R38, o cache vem true por padrгo, entгo deve por false para nгo usar o cache... talvez funcione
Re: MySQL R38 - UPDATE -
AndreOliveira - 26.04.2014
Bom, percebi aqui, que cometi um erro bem idiota. Eu estava esquecendo de atualizar os valores do ENUM, fiz isso:
Код:
public OnPlayerDisconnect(playerid)
{
PlayerData[playerid][skin] = GetPlayerSkin(playerid);
PlayerData[playerid][dinheiro] = GetPlayerMoney(playerid);
new salvarPlayerQuery[500];
mysql_format(conn, salvarPlayerQuery, sizeof(salvarPlayerQuery), "UPDATE players SET usuario='%e', senha='%e', skin=%i, dinheiro=%i, admin_level=%i WHERE id_player=%i", PlayerData[playerid][usuario], PlayerData[playerid][senha], PlayerData[playerid][skin], PlayerData[playerid][dinheiro], PlayerData[playerid][admin_level], PlayerData[playerid][id_player]);
mysql_query(conn, salvarPlayerQuery, false);
if(mysql_errno() != 0) print("Erro");
return 1;
}
Porйm agora o cуdigo printa la no server_log "Erro"(
do mysql_errno())
Respuesta: MySQL R38 - UPDATE -
AndreOliveira - 26.04.2014
Consegui arrumar um erro, tirei o PRIMARY KEY do campo id_player e funcionou, porйm, o cache_get_field_content nгo estб salvando os valores para o meu ENUM, ele passa null
Код:
cache_get_field_content(0, "usuario", PlayerData[playerid][usuario]);
cache_get_field_content(0, "senha", PlayerData[playerid][senha]);
Re: MySQL R38 - UPDATE -
AndreOliveira - 26.04.2014
PROBLEMA RESOLVIDO