Mysql load/save
#1

Sometimes script dosent save/loaf info from mysql data, but not every time, in server_log i seen nothing bad, in Mysql log same, nothging bad, Mysql is in FilterScripta

Saveing:

pawn Код:
stock MySQL_Save(playerid)

{

            new Query[ 512 ];

            mysql_reconnect();

         

            format( Query, sizeof( Query ),"UPDATE `"#MYSQL_TABLE"` SET pinigai = '%d', patirtis = '%d', admin = '%d', vip = '%d' WHERE vardas = '%s'",

            GetPlayerMoney( playerid ),

            GetPlayerScore( playerid ),

            zInfo[ playerid ][ Admin ],

            zInfo[ playerid ][ Vip ],

            GetPlayerNameEx( playerid ) );

         

            mysql_query(Query);

            mysql_free_result();

            return 1;

}
Loading:

pawn Код:
stock MySQL_Load(playerid)

{

        new

                fetch[ 16 ],

                Query[ 256 ];

        mysql_reconnect();

        format(Query, sizeof(Query), "SELECT * FROM `"#MYSQL_TABLE"` WHERE vardas = '%s'", GetPlayerNameEx(playerid));

        mysql_query(Query);

        mysql_store_result();

        mysql_retrieve_row();

        mysql_fetch_field_row( fetch, "pinigai" );              zInfo[ playerid ][ Pinigai ] = strval(fetch);        GivePlayerMoney(playerid, zInfo[playerid][Pinigai]);

        mysql_fetch_field_row( fetch, "patirtis" );              zInfo[ playerid ][ Patirtis ] = strval(fetch);      SetPlayerScore(playerid, zInfo[playerid][Patirtis]);

        mysql_fetch_field_row( fetch, "admin" );                  zInfo[ playerid ][ Admin ] = strval(fetch);

        mysql_fetch_field_row( fetch, "vip" );                  zInfo[ playerid ][ Vip ] = strval(fetch);

        mysql_free_result();

        printf( "Pakrautas ћaidėjas. [%s]", GetPlayerNameEx( playerid ) );

        return 1;

}
Sometimes xp, money is adding from noweahr, even it's nesesery.

pawn Код:
public OnPlayerDisconnect(playerid, reason)

{

    if( online[ playerid ] )

    {

        MySQL_Save( playerid );

    }

    return 1;

}
pawn Код:
public OnPlayerSpawn(playerid)

{

    if( from_login[ playerid ] )

    {

          MySQL_Load( playerid );

          from_login[ playerid ] = false;

        return 1;

    }

    return 1;

}
what i'm doing wrong? sorry for realy bad english
Reply
#2

why do you use mysql_reconnect(); try to remove this and use for your tablename and
column names backtricks this is very important because that there 're not complication with using table or column
who 're maybe reserved words from mysql
Reply
#3

Quote:
Originally Posted by IPrototypeI
Посмотреть сообщение
why do you use mysql_reconnect(); try to remove this and use for your tablename and
column names backtricks this is very important because that there 're not complication with using table or column
who 're maybe reserved words from mysql
pawn Код:
stock MySQL_Save(playerid)

{

            new Query[ 512 ];

            format( Query, sizeof( Query ),"UPDATE `minim` SET pinigai = '%d', patirtis = '%d', admin = '%d', vip = '%d' WHERE vardas = '%s'",

            GetPlayerMoney( playerid ),

            GetPlayerScore( playerid ),

            zInfo[ playerid ][ Admin ],

            zInfo[ playerid ][ Vip ],

            GetPlayerNameEx( playerid ) );

         

            mysql_query(Query);

            mysql_free_result();

            return 1;

}
like this? tryed, things going the same
Reply
#4

bump
Reply
#5

tryed
pawn Код:
stock MySQL_Load(playerid)
{
        new
                fetch[ 16 ],
                Query[ 256 ];

        format(Query, sizeof(Query), "SELECT * FROM `"#MYSQL_TABLE"` WHERE vardas = '%s'", GetPlayerNameEx(playerid));
        mysql_query(Query);
        mysql_store_result();
        while(mysql_fetch_row_format(Query,"|"))
        {
            mysql_fetch_field_row( fetch, "pinigai" );               zInfo[ playerid ][ Pinigai ] = strval(fetch);      GivePlayerMoney(playerid, zInfo[playerid][Pinigai]);
            mysql_fetch_field_row( fetch, "patirtis" );              zInfo[ playerid ][ Patirtis ] = strval(fetch);      SetPlayerScore(playerid, zInfo[playerid][Patirtis]);
            mysql_fetch_field_row( fetch, "admin" );                 zInfo[ playerid ][ Admin ] = strval(fetch);
            mysql_fetch_field_row( fetch, "vip" );                   zInfo[ playerid ][ Vip ] = strval(fetch);
        }
        mysql_free_result();

        printf( "Pakrautas ћaidėjas. [%s]", GetPlayerNameEx( playerid ) );

        return 1;
}
it's still the same
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)