Sziasztok!Nem rég egy mysql-es admin rendszert kezdtem el megcsinálni(fél-1órája) és mikor lefuttatnák egy lekérdezést ezt írja ki:
[22:38:50] INSERT INTO `szerver`.`admins` (`ip`,`name`,`level`) VALUES (\'asd\',\'asd\',0);
[22:38:50] [MySQL] Error (0): Failed to exeute query. Commands out of sync; you can\'t run this command now.
A kód:[pawn]#include <a_samp>
#include <mysql>
#include <zcmd>
#include <sscanf2>
new MySQL:mysql;
public OnFilterScriptInit()
{
mysql=mysql_init(LOG_ALL);
mysql_connect(\"127.0.0.1\",\"root\",\"asdasd\",\"szerver\",mysql);
printf(\"Sikeresen elindult az adminsystem!\");
for(new i;i<GetMaxPlayers();i++)
{
if(IsPlayerConnected(i))
{
OnPlayerConnect(i);
}
}
return 1;
}
public OnFilterScriptExit()
{
mysql_close(mysql);
return 1;
}
public OnPlayerConnect(playerid)
{
new ip[16];
GetPlayerIp(playerid,ip,16);
new str[128];
format(str,128,\"SELECT * FROM `admins` WHERE `ip`=\'%s\'\",ip);
mysql_query(str);
mysql_store_result();
mysql_free_result();
if(mysql_num_rows(mysql)==0)
{
ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,\"Regisztrálás\",\"Írd be a jelszavad a regisztráláshoz.\",\"OK\",\"Mégsem\");
} else {
SendClientMessage(playerid,-1,\"Üdv újra!\");
}
return 1;
}
forward OnDialogResponse2(playerid, dialogid, response, listitem, inputtext[]);
public OnDialogResponse2(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==1)
{
new ip[16];
GetPlayerIp(playerid,ip,16);
new name[24];
GetPlayerName(playerid,name,24);
new str[128];
format(str,128,\"INSERT INTO `szerver`.`admins` (`ip`,`name`,`level`) VALUES (\'%s\',\'%s\',0);\",ip,name);
printf(\"%s\",str);
new query=mysql_query(str);
if(query)
{
SendClientMessage(playerid,-1,\"Sikeres regisztráció!\");
return 1;
} else {
SendClientMessage(playerid,-1,\"Sikertelen regisztráció!\");
}
}
return 0;
}
[/pawn]
StrickenKid mysql pluginját haználom.Köszönöm elõre is a segítséget.
Nincsenek benne ilyen izék:'%s\'\"
UI: Az OnDialogResponse2 azért van ott, mivel nem hívta meg alapból a szerver, ezért bekellett építenem ezt a callbackot a scriptbe,hogy megtudja hívni a gamemode.Ha az alap OnDialogResponse-t hívtam volna meg vagy 999x lefutott volna.