SetPlayerInfo function (mysql) doesn't work -
Battleman - 21.02.2011
The function that will set player data doesn't work, and I don't know why.
Anybody
Код:
SetPlayerInfo(playerid, "language", "1", 0);//Set the language (player data) to 1
Код:
stock SetPlayerInfo(playerid, info[], newinfo[], vartype)
{
if(vartype){
format(query, sizeof(query), "UPDATE `users` SET '%s' = '%s' WHERE `username` = '%s'", info, newinfo,PlayerName[playerid]);
}else{
format(query, sizeof(query), "UPDATE `users` SET '%s' = '%d' WHERE `username` = '%s'", info, newinfo,PlayerName[playerid]);
}
printf("SetPlayerInfo %s", query);
mysql_query(query);
}
Re: SetPlayerInfo function (mysql) doesn't work -
JaTochNietDan - 21.02.2011
You're passing it as a string in the format function, when it's supposed to be an integer, you need to use a function like strval. Additionally I would change the SQL syntax slightly, like so:
pawn Код:
stock SetPlayerInfo(playerid, info[], newinfo[], vartype)
{
if(vartype){
format(query, sizeof(query), "UPDATE `users` SET %s = '%s' WHERE username = '%s'", info, newinfo,PlayerName[playerid]);
}else{
format(query, sizeof(query), "UPDATE `users` SET %s = %d WHERE username = '%s'", info, strval(newinfo),PlayerName[playerid]);
}
printf("SetPlayerInfo %s", query);
mysql_query(query);
}
Re: SetPlayerInfo function (mysql) doesn't work -
Battleman - 21.02.2011
Thanks!
RED text part works now, but the blue text part doesn't work.
Код:
stock SetPlayerInfo(playerid, info[], newinfo[], vartype)
{
if(vartype){
format(query, sizeof(query), "UPDATE `users` SET %s = '%s' WHERE username = '%s'", info, newinfo,PlayerName[playerid]);
}else{
format(query, sizeof(query), "UPDATE `users` SET %s = %d WHERE username = '%s'", info, strval(newinfo),PlayerName[playerid]);
}
printf("SetPlayerInfo %s", query);
mysql_query(query);
}
Any idea?
Re: SetPlayerInfo function (mysql) doesn't work -
JaTochNietDan - 21.02.2011
What are you using to test it for the blue part?
Re: SetPlayerInfo function (mysql) doesn't work -
WackoX - 21.02.2011
Check the MySQL logs?
Re: SetPlayerInfo function (mysql) doesn't work -
Antonio [G-RP] - 21.02.2011
From my knowledge, this should fix it.
Код:
stock SetPlayerInfo(playerid, info[], newinfo[], vartype)
{
if(vartype){
format(query, sizeof(query), "UPDATE `users` SET `%s` = '%s' WHERE username = '%s'", info, newinfo,PlayerName[playerid]);
}else{
format(query, sizeof(query), "UPDATE `users` SET `%s` = %d WHERE username = '%s'", info, strval(newinfo),PlayerName[playerid]);
}
printf("SetPlayerInfo %s", query);
mysql_query(query);
}
JaTochNietDan -
Battleman - 21.02.2011
Quote:
Originally Posted by JaTochNietDan
What are you using to test it for the blue part?
|
SetPlayerInfo(playerid, "reasonofwarn1", "hacks", 1);
My MySQL log file give this error:
[11:11:14] CMySQLHandler::Query(UPDATE `users` SET `secretquestionanwser` = 'henk' WHERE username = '[VLA]Battleman') - An error has occured. (Error ID: 1054, Unknown column 'secretquestionanwser' in 'field list')
[11:11:16] >> mysql_query( Connection handle: 1 )
Re: SetPlayerInfo function (mysql) doesn't work -
JaTochNietDan - 22.02.2011
You spelled it differently in table and in the query, in the table it is "answer", which is correct, and in the query it is "anwser", which is wrong, so that column does not exist
Re: SetPlayerInfo function (mysql) doesn't work -
Battleman - 22.02.2011
Lol stupid :P
Thanks!