Code:
public SQLConnect()
{
new iError, szError[96], szDbHost[32], szDbUser[32], szDbPassword[32], szDbName[32];
get_pcvar_string(cvar_zp_dbhost, szDbHost, charsmax(szDbHost));
get_pcvar_string(cvar_zp_dbuser, szDbUser, charsmax(szDbUser));
get_pcvar_string(cvar_zp_dbpassword, szDbPassword, charsmax(szDbPassword));
get_pcvar_string(cvar_zp_dbname, szDbName, charsmax(szDbName));
g_hSQLTuple = SQL_MakeDbTuple(szDbHost, szDbUser, szDbPassword, szDbName);
new Handle:hSQLConn = SQL_Connect(g_hSQLTuple, iError, szError, charsmax(szError));
if (hSQLConn == Empty_Handle)
set_fail_state(szError);
new Handle:hSQLQuery = SQL_PrepareQuery(hSQLConn, "CREATE TABLE IF NOT EXISTS player (auth varchar(32), ammop int(11))");
if (!SQL_Execute(hSQLQuery))
{
SQL_QueryError(hSQLQuery, szError, charsmax(szError));
set_fail_state(szError);
}
SQL_FreeHandle(hSQLQuery);
SQL_FreeHandle(hSQLConn);
}
public SQLLoadAp(pPlayer)
{
if (g_hSQLTuple == Empty_Handle)
{
set_task(1.0, "SQLLoadAp", pPlayer);
return;
}
new szQuery[200], szAuthId[32], stData[1];
get_user_authid(pPlayer, szAuthId, charsmax(szAuthId));
stData[0] = pPlayer;
formatex(szQuery, charsmax(szQuery), "SELECT * FROM player WHERE auth LIKE '%s'", szAuthId);
SQL_ThreadQuery(g_hSQLTuple, "SQLSetClientAp", szQuery, stData, sizeof stData);
}
public SQLSetClientAp(iFail, Handle:hSQLQuery, szError[], iError, stData[], iLen, Float:flQueryTime)
{
switch (iFail)
{
case TQUERY_CONNECT_FAILED: return set_fail_state("Could not connect to database.");
case TQUERY_QUERY_FAILED: return set_fail_state("Query failed!");
}
if (iError)
return log_amx("Error on query: %s", szError);
new pPlayer = stData[0];
if (!SQL_NumResults(hSQLQuery))
{
new szAuthId[32], szQuery[200];
get_user_authid(pPlayer, szAuthId, charsmax(szAuthId));
if (equali(szAuthId, "STEAM_ID_PENDING"))
return 0;
formatex(szQuery, charsmax(szQuery), "INSERT INTO player VALUES('%s', '%i')", szAuthId, g_AmmoPacks[pPlayer]);
SQL_ThreadQuery(g_hSQLTuple, "SQLIgnoreHandle", szQuery);
return 0;
}
g_AmmoPacks[pPlayer] = SQL_ReadResult(hSQLQuery, 1);
return 1;
}