PHP Code:
public MySql_Init()
{
g_SqlTuple = SQL_MakeDbTuple(g_szPanelInfo[MYSQL_HOST], g_szPanelInfo[MYSQL_USER],g_szPanelInfo[MYSQL_PASS], g_szPanelInfo[MYSQL_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 %s ( `id` INT(11) NOT NULL AUTO_INCREMENT , `name` VARCHAR(33) NOT NULL , `ip` VARCHAR(33) NOT NULL , `steamid` VARCHAR(33) NOT NULL , `frags` INT(33) NOT NULL , `deaths` INT(33) NOT NULL , `firstseen` VARCHAR(255) NOT NULL , `lastvisit` VARCHAR(255) NOT NULL , PRIMARY KEY (`id`))", g_szONPlayer_Table)
if(!SQL_Execute(Queries))
{
SQL_QueryError(Queries,g_Error,charsmax(g_Error))
set_fail_state(g_Error)
}
else
{
server_print("[Advanced Panel] SQL Connection succesfully!")
}
SQL_FreeHandle(Queries)
SQL_FreeHandle(SqlConnection)
}
public client_putinserver(id)
{
insert_new_player(id)
}
public insert_new_player(id)
{
if (is_user_bot(id) || is_user_hltv(id))
return
get_user_name(id, g_iPlayersInfo[id][Name], charsmax(g_iPlayersInfo[][Name]))
new szData[1]
szData[0] = id
new szQuery[512];
mysql_escape_string(g_iPlayersInfo[id][Name], charsmax(g_iPlayersInfo[][Name]))
formatex(szQuery, charsmax(szQuery), "SELECT * FROM %s WHERE name='%s'", g_szONPlayer_Table, g_iPlayersInfo[id][Name]);
SQL_ThreadQuery(g_SqlTuple, "Check_Data", szQuery, szData, 1)
}
public Check_Data(FailState, Handle:Query, szError[], ErrorCode, szData[], iSize)
{
if(FailState || ErrorCode)
server_print("%s", szError)
new id = szData[0]
if(SQL_NumResults(Query) < 1)
{
new szQuery[512]
get_users_info(id)
mysql_escape_string(g_iPlayersInfo[id][Name], charsmax(g_iPlayersInfo[][Name]))
formatex(szQuery, charsmax(szQuery), "INSERT INTO `%s` (`name`,`ip`,`steamid`,`frags`,`deaths`) VALUES (`%s`,`%s`,`%s`,`0`,`0`)",
g_szONPlayer_Table, g_iPlayersInfo[id][Name], g_iPlayersInfo[id][Address], g_iPlayersInfo[id][AuthID])
if(g_szPanelInfo[DEBUG_PRINT] != 0)
{
server_print("[AdvancedPanel] Player %s has benn inserted into table: %s", g_iPlayersInfo[id][Name], g_szONPlayer_Table )
}
SQL_ThreadQuery(g_SqlTuple, "FreeHandle", szQuery )
}
else
{
server_print("[Advanced Panel] SQL ERROR! Player %s already exists!", g_iPlayersInfo[id][Name])
}
}
public FreeHandle(FailState, Handle:Query, szError[], ErrorCode, szData[], iSize)
{
if(FailState || ErrorCode)
server_print("%s", szError)
SQL_FreeHandle(Query);
if(g_szPanelInfo[DEBUG_PRINT] != 0)
{
server_print("[AdvancedPanel] Query for inserting player is freehandle now.")
}
}
stock get_users_info(id)
{
g_iPlayersInfo[id][Frags] = get_user_frags(id)
g_iPlayersInfo[id][Deaths] = get_user_deaths(id)
get_user_name(id, g_iPlayersInfo[id][Name], charsmax(g_iPlayersInfo[][Name]))
get_user_authid(id, g_iPlayersInfo[id][AuthID], charsmax(g_iPlayersInfo[][AuthID]))
}
mysql_escape_string(dest[],len)
{
//copy(dest, len, source);
replace_all(dest,len,"\\","\\\\");
replace_all(dest,len,"\0","\\0");
replace_all(dest,len,"\n","\\n");
replace_all(dest,len,"\r","\\r");
replace_all(dest,len,"\x1a","\Z");
replace_all(dest,len,"'","\'");
replace_all(dest,len,"^"","\^"");
}