[Ajuda] Ediзгo de nome no MySQL
#1

Olб, minha dъvida й a seguinte, eu estou tentando elaborar um cуdigo que consistirб em editar o nome de determinada conta no banco de dados MySQL, logo eu fiz o seguinte cуdigo:

pawn Код:
new tString[66];
    format(tString, sizeof(tString), " Seu nome foi alterado. Agora a conta se chamarб: %s", inputtext);
    SendClientMessage(playerid, azul, tString);
    mysql_format(MySQL_Connected, Query, 100, "UPDATE dmplayers SET name = '%e' WHERE name = '%s'", inputtext, pName[playerid]);
    mysql_query(MySQL_Connected, Query, false);
    Kick(playerid);
O ъnico problema й que nгo altera, logo quero que esclareзam minha dъvida para que eu possa resolver esse problema. Obrigado pela atenзгo.
Reply
#2

%e?

Nгo seria s?
Reply
#3

Quote:
Originally Posted by Dolby
Посмотреть сообщение
%e?

Nгo seria s?
Poderia, no entanto, quero saber se tem interferкncia na consulta SQL de acordo com a alteraзгo de valor QUANDO procurado o mesmo.
Reply
#4

Quote:
Originally Posted by Dolby
Посмотреть сообщение
%e?

Nгo seria s?
O "e" й usado para previnir SQL Injection.

Aparentemente nгo hб nada de errado, verifique a sintaxe do MySQL.

Tente alterar atravйs da chave primбria.
Reply
#5

Quote:
Originally Posted by pWesley
Посмотреть сообщение
Olб, minha dъvida й a seguinte, eu estou tentando elaborar um cуdigo que consistirб em editar o nome de determinada conta no banco de dados MySQL, logo eu fiz o seguinte cуdigo:

pawn Код:
new tString[66];
    format(tString, sizeof(tString), " Seu nome foi alterado. Agora a conta se chamarб: %s", inputtext);
    SendClientMessage(playerid, azul, tString);
    mysql_format(MySQL_Connected, Query, 100, "UPDATE dmplayers SET name = '%e' WHERE name = '%s'", inputtext, pName[playerid]);
    mysql_query(MySQL_Connected, Query, false);
    Kick(playerid);
O ъnico problema й que nгo altera, logo quero que esclareзam minha dъvida para que eu possa resolver esse problema. Obrigado pela atenзгo.
me passa um print da tabela onde ta nome do jogador!
Reply
#6

Quote:
Originally Posted by Gii
Посмотреть сообщение
O "e" й usado para previnir SQL Injection.
Verdade. Acabei confundindo com format convencional.
Reply
#7

Pode ser o problema de usar uma funзгo antes do kick. A query pode nгo estar sendo enviada. Experimente tirar o kick e veja se funciona.
Reply
#8

Sim, eu adicionei a funзгo pra Kickar o usuбrio, logo o mesmo conseguiu alterar no banco de dados. Atй aн deu certo.

Agora, eu preciso de um pequeno favor: uma verificaзгo SE O NOME QUE ESTБ TENTANDO SER COLOCADO, JБ EXISTE NO BANCO DE DADOS, para criar uma funзгo que impeзa o player de criar conflito em tabelas do banco de dados.
Reply
#9

Quote:
Originally Posted by pWesley
Посмотреть сообщение
Sim, eu adicionei a funзгo pra Kickar o usuбrio, logo o mesmo conseguiu alterar no banco de dados. Atй aн deu certo.

Agora, eu preciso de um pequeno favor: uma verificaзгo SE O NOME QUE ESTБ TENTANDO SER COLOCADO, JБ EXISTE NO BANCO DE DADOS, para criar uma funзгo que impeзa o player de criar conflito em tabelas do banco de dados.
ae esta o cmd. Agora basta editar conforme seu Game Mode

Код:
    CMD:mudarnick(playerid, params[]) {
    new NovoNome[24], Msg[144];
    if(PlayerInfo[playerid][pDinheiro] < 0) return SendClientMessage(playerid, -1, "{ff0000}Para mudar de nick Г© necessГЎrio R$1000");
    if(sscanf(params, "s[20]", NovoNome)) return SendClientMessage(playerid, -1, "{ff0000}Use: /mudarnick [novo nick]");
    new Query[256], Cache:MudarNick;

	mysql_format(mysql, Query, sizeof(Query), "SELECT name FROM dmplayers WHERE name='%e'",     NovoNome);
    MudarNick = mysql_query(mysql, Query, true);
    if(cache_num_rows(mysql)) return SendClientMessage(playerid, -1, "{ff0000}AlguГ©m jГЎ usa este nick!"), cache_delete(MudarNick, mysql);
    cache_delete(MudarNick, mysql);

	if(SetPlayerName(playerid, NovoNome) != 1) return SendClientMessage(playerid, -1, "{ff0000}Este nome     estГЎ em uso ou Г© invГЎlido!");
    SetPlayerName(playerid, NovoNome);
    format(Msg, sizeof(Msg), "{ffff00}[Mudar Nick] %s mudou para %s", PlayerInfo[playerid][pNome], NovoNome);
    SendClientMessageToAll(-1, Msg);
    GivePlayerMoney(playerid, (-1000));
    format(PlayerInfo[playerid][pNome], 24, NovoNome);
    SalvarConta(playerid);
    return 1;
}
code by: NicK
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)