Raised This Month: $ Target: $400
 0% 

SQLx Problem


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
skitaila03
Junior Member
Join Date: Nov 2014
Old 11-23-2014 , 06:51   SQLx Problem
Reply With Quote #1

Hello AM,
I have a problem with my sqlx code for a shop , my server crash after 1-2 minutes with segmentation fault or i recive blank console , thank you.
PS: Sry for RIP english..

Here is code...
Code:
public MySql_Init()
{
        g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db);
   

        new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error));
        if(SqlConnection == Empty_Handle)
            set_fail_state(g_Error);
       
        new Handle:Queries;
        Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS shop (authid varchar(32), ip varchar(32),name varchar(32),money INT(11))");

        if(!SQL_Execute(Queries))
        {
            SQL_QueryError(Queries,g_Error,charsmax(g_Error));
            set_fail_state(g_Error);
        }
    
        SQL_FreeHandle(Queries);
        SQL_FreeHandle(SqlConnection);
}

public Load_MySql(id)
{
       new Data[1], szTemp[512];
        Data[0] = id;

        #if defined SAVE_METHOD_NICK
        formatex(szTemp,charsmax(szTemp),"SELECT * FROM `shop` WHERE (`shop`.`name` = '%s')", g_iAuth[id]);
    #endif 
    #if defined SAVE_METHOD_IP
        formatex(szTemp,charsmax(szTemp),"SELECT * FROM `shop` WHERE (`shop`.`ip` = '%s')", g_iAuthIP[id]);
    #endif 
    #if defined SAVE_METHOD_ID
        formatex(szTemp,charsmax(szTemp),"SELECT * FROM `shop` WHERE (`shop`.`authid` = '%s')", g_iAuthID[id]);
    #endif 
    

        SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1);
}

public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
        if(FailState == TQUERY_CONNECT_FAILED)
        {
            log_amx("Load - Could not connect to SQL database.  [%d] %s", Errcode, Error);
        }
        else if(FailState == TQUERY_QUERY_FAILED)
        {
                log_amx("Load Query failed. [%d] %s", Errcode, Error);
        }

        new id;
        id = Data[0];
    
        if(SQL_NumResults(Query) < 1) 
        {
             #if defined SAVE_METHOD_NICK
                if (equal(g_iAuth[id],"ID_PENDING"))
                        return PLUGIN_HANDLED;
        #endif 
        #if defined SAVE_METHOD_IP
            if (equal(g_iAuthIP[id],"IP_PENDING"))
                        return PLUGIN_HANDLED;
        #endif 
        #if defined SAVE_METHOD_ID
                if (equal(g_iAuthID[id],"ID_PENDING"))
                        return PLUGIN_HANDLED;
        #endif 

            
            new szTemp[512];
        
            #if defined SAVE_METHOD_NICK
            formatex(szTemp,charsmax(szTemp),"INSERT INTO `shop` ( `name` , `money`)VALUES ('%s','0');", g_iAuth[id]);
        #endif 
        #if defined SAVE_METHOD_IP
            formatex(szTemp,charsmax(szTemp),"INSERT INTO `shop` ( `ip` , `money`)VALUES ('%s','0');", g_iAuthIP[id]);
        #endif 
        #if defined SAVE_METHOD_ID
            formatex(szTemp,charsmax(szTemp),"INSERT INTO `shop` ( `authid` , `money`)VALUES ('%s','0');", g_iAuthID[id]);
        #endif 

                SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp);
        } 
        else  g_iPoints[id]         = SQL_ReadResult(Query, 1);
        
    
        return PLUGIN_HANDLED;
}

public Save_MySql(id)
{
        new szTemp[512];
    
        #if defined SAVE_METHOD_NICK
        formatex(szTemp,charsmax(szTemp),"UPDATE `shop` SET `money` = '%i' WHERE `shop`.`name` = '%s';",g_iPoints[id], g_iAuth[id]);
    #endif 
    #if defined SAVE_METHOD_IP
        formatex(szTemp,charsmax(szTemp),"UPDATE `shop` SET `money` = '%i' WHERE `shop`.`ip` = '%s';",g_iPoints[id], g_iAuthIP[id]);
    #endif 
    #if defined SAVE_METHOD_ID
        formatex(szTemp,charsmax(szTemp),"UPDATE `shop` SET `money` = '%i' WHERE `shop`.`authid` = '%s';",g_iPoints[id], g_iAuthID[id]);
    #endif 

        SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp);
}

public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
        SQL_FreeHandle(Query);
    
        return PLUGIN_HANDLED;
}
skitaila03 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 17:31.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode