|
Junior Member
|

11-23-2014
, 06:51
SQLx Problem
|
#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;
}
|
|