SA-MP Forums Archive
[debug]Crash server - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: [debug]Crash server (/showthread.php?tid=478998)



[debug]MySQL R34 Сохранение аккаунта - Mr.4o-4o - 02.12.2013

Переписываю сохранение аккаунта на mysql, использую плагин r34, но аккаунт не сохраняется а в логах пишется:
PHP код:
[12:29:38] [DEBUGmysql_tquery connection1query"UPDATE `accounts` SET `Level` = '1', `AdminLevel` = '0', `Helper"callback"(null)"format"(null)"
[12:29:38] [DEBUGCMySQLQuery::CMySQLQuery() - constructor called
[12:29:38] [DEBUGmysql_tquery scheduling query "UPDATE `accounts` SET `Level` = '1', `AdminLevel` = '0', `HelperLevel` = '0', `DonateRank` = '0', `UpgradePoints` = '0', `ConnectedTime` = '0', `Registered` = '1', `Sex` = '1', `Age` = '0', `Origin` = '0', WHERE `NickName` = 'Vasya_Pupki"..
[
12:29:38] [DEBUGCMySQLQuery::Execute[()] - starting query execution
[12:29:38] [ERRORCMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `NickName` = 'Vasya_Pupki' at line 1
[12:29:38] [DEBUGCMySQLQuery::Execute[()] - error will be triggered in OnQueryError
[12:29:38] [DEBUGCMySQLQuery::Execute[()] - data being passed to ProcessCallbacks()
[
12:29:38] [DEBUGCMySQLQuery::~CMySQLQuery() - deconstructor called 
Вот код:
PHP код:
stock SaveAccount1(playerid)
{
    new 
heap heapspace();
    
printf("SaveAccount1() STK %d"heap);
    new 
string[32]; new query[1024];
    new 
PlayerName[24];
    
mysql_real_escape_string(PlayerInfo[playerid][pName], PlayerName);
    
format(string,sizeof(string),"UPDATE `accounts` SET "),strcat(query,string);
    
format(string,sizeof(string),"`Level` = '%i', ",PlayerInfo[playerid][pLevel]),strcat(query,string);
    
format(string,sizeof(string),"`AdminLevel` = '%i', ",PlayerInfo[playerid][pAdmin]),strcat(query,string);
    
format(string,sizeof(string),"`HelperLevel` = '%i', ",PlayerInfo[playerid][pHelper]),strcat(query,string);
    
format(string,sizeof(string),"`DonateRank` = '%i', ",PlayerInfo[playerid][pDonateRank]),strcat(query,string);
    
format(string,sizeof(string),"`UpgradePoints` = '%i', ",PlayerInfo[playerid][pUpgrade]),strcat(query,string);
    
format(string,sizeof(string),"`ConnectedTime` = '%i', ",PlayerInfo[playerid][pConnectTime]),strcat(query,string);
    
format(string,sizeof(string),"`Registered` = '%i', ",PlayerInfo[playerid][pReg]),strcat(query,string);
    
format(string,sizeof(string),"`Sex` = '%i', ",PlayerInfo[playerid][pSex]),strcat(query,string);
    
format(string,sizeof(string),"`Age` = '%i', ",PlayerInfo[playerid][pAge]),strcat(query,string);
    
format(string,sizeof(string),"`Origin` = '%i', ",PlayerInfo[playerid][pOrigin]),strcat(query,string);
    
format(string,sizeof(string),"WHERE `NickName` = '%s'",PlayerName),strcat(query,string);
    
mysql_function_query(dbHandle,query,false,"","");
    
printf("SaveAccount1() STK %d (%d LOSS)"heapspace(), (heap heapspace()));
    return 
1;




Re: [debug]Crash server - Mr.4o-4o - 05.12.2013

Помогите пожалуйста, буду очень благодарен.


Re: [debug]Crash server - ea8de1 - 05.12.2013

Попробуй заменить:
Код:
stock SaveAccount1(playerid) 
{ 
    new heap = heapspace(); 
    printf("SaveAccount1() STK %d", heap); 
    new string[48]; new query[1024]; 
    new PlayerName[24]; 
    mysql_real_escape_string(PlayerInfo[playerid][pName], PlayerName); 
    format(string,sizeof(string),"UPDATE `accounts` SET "),strcat(query,string); 
    format(string,sizeof(string),"`Level` = '%i', ",PlayerInfo[playerid][pLevel]),strcat(query,string); 
    format(string,sizeof(string),"`AdminLevel` = '%i', ",PlayerInfo[playerid][pAdmin]),strcat(query,string); 
    format(string,sizeof(string),"`HelperLevel` = '%i', ",PlayerInfo[playerid][pHelper]),strcat(query,string); 
    format(string,sizeof(string),"`DonateRank` = '%i', ",PlayerInfo[playerid][pDonateRank]),strcat(query,string); 
    format(string,sizeof(string),"`UpgradePoints` = '%i', ",PlayerInfo[playerid][pUpgrade]),strcat(query,string); 
    format(string,sizeof(string),"`ConnectedTime` = '%i', ",PlayerInfo[playerid][pConnectTime]),strcat(query,string); 
    format(string,sizeof(string),"`Registered` = '%i', ",PlayerInfo[playerid][pReg]),strcat(query,string); 
    format(string,sizeof(string),"`Sex` = '%i', ",PlayerInfo[playerid][pSex]),strcat(query,string); 
    format(string,sizeof(string),"`Age` = '%i', ",PlayerInfo[playerid][pAge]),strcat(query,string); 
    format(string,sizeof(string),"`Origin` = '%i', ",PlayerInfo[playerid][pOrigin]),strcat(query,string); 
    format(string,sizeof(string),"WHERE `NickName` = '%s'",PlayerName),strcat(query,string); 
    mysql_function_query(dbHandle,query,false,"",""); 
    printf("SaveAccount1() STK %d (%d LOSS)", heapspace(), (heap - heapspace())); 
    return 1; 
}



Re: [debug]Crash server - Stepashka - 05.12.2013

Код:
"`Origin` = '%i', "
запятая лишняя.


Re: [debug]Crash server - Mr.4o-4o - 05.12.2013

Оба варианта оказались верны, спасибо большое ea8de1 и Stepashka.


Re: [debug]Crash server - Mr.4o-4o - 05.12.2013

А подскажите ещё, что значит вот это:
PHP код:
[12:29:38] [DEBUGmysql_tquery connection1query"UPDATE `accounts` SET `Level` = '1', `AdminLevel` = '0', `Helper"callback"(null)"format"(null)" 
callback: "(null)", format: "(null)
и оно бывает у меня ещё вот так:
PHP код:
[18:39:14] [DEBUGmysql_tquery connection1query"UPDATE `accounts` SET `Level` = '10', `AdminLevel` = '5', `Helpe"callback"(null)"format"(null)" 
Helper - как бы не дописано.


Re: [debug]Crash server - Jon_De - 05.12.2013

массив слишком маленький, текст не влезает


Re: [debug]Crash server - Mr.4o-4o - 05.12.2013

1.На сохранении игрока это как то скажется?
2. Мне стоит увеличить new string[48] или new query[1024]?


Re: [debug]Crash server - Jon_De - 05.12.2013

Quote:
Originally Posted by Mr.4o-4o
Посмотреть сообщение
1.На сохранении игрока это как то скажется?
2. Мне стоит увеличить new string[48] или new query[1024]?
1 он не сохранится
2 я вообще не понимаю зачем 2 массива, 1-го хватит