PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
new Handle:MYSQL_CONNECTION
new DatabaseID[MAX_PLAYERS + 1]
new const MYSQL_TABLE[] = "table"
public plugin_cfg()
MYSQL_Init()
public plugin_end()
SQL_FreeHandle(MYSQL_CONNECTION)
public MYSQL_Init()
{
MYSQL_CONNECTION = SQL_MakeStdTuple()
new query[256]
formatex(query, charsmax(query), "CREATE TABLE IF NOT EXISTS `%s` (\
`id` INT(4) NOT NULL AUTO_INCREMENT,\
`steamid` VARCHAR(32) NOT NULL,\
`name` VARCHAR(64) NOT NULL,\
PRIMARY KEY (`id`),\
UNIQUE (`steamid`));", MYSQL_TABLE)
SQL_ThreadQuery(MYSQL_CONNECTION, "IgnoredOutput", query)
}
public client_authorized(id)
{
if (!is_user_bot(id) && !is_user_hltv(id))
{
new steamid[32], data[2]
data[0] = id
data[1] = 0
DatabaseID[id] = 0
get_user_authid(id, steamid, charsmax(steamid))
SQL_ThreadQuery(MYSQL_CONNECTION, "DataOutput", fmt("SELECT * FROM `%s` WHERE BINARY `steamid` = '%s';", MYSQL_TABLE, steamid), data, sizeof(data))
}
}
public client_disconnected(id)
{
if (!is_user_bot(id) && !is_user_hltv(id))
{
new buffer[MAX_NAME_LENGTH*2]
SQL_QuoteStringFmt(Empty_Handle, buffer, charsmax(buffer), "%n", id)
server_print(buffer)
SQL_ThreadQuery(MYSQL_CONNECTION, "IgnoredOutput", fmt("UPDATE `%s` SET `name` = '%s' WHERE id = %d;", MYSQL_TABLE, buffer, DatabaseID[id]))
DatabaseID[id] = 0
}
}
public DataOutput(failState, Handle:query, error[], errNum, data[])
{
if(errNum)
server_print("MYSQL Error # (%d)%s", errNum, error)
else
{
new id = data[0]
if(is_user_connected(id))
{
if(!SQL_NumResults(query))
{
new steamid[MAX_NAME_LENGTH], buffer[MAX_NAME_LENGTH*2]
get_user_authid(id, steamid, charsmax(steamid))
SQL_QuoteStringFmt(Empty_Handle, buffer, charsmax(buffer), "%n", id)
SQL_ThreadQuery(MYSQL_CONNECTION, "IgnoredOutput", fmt("INSERT INTO `%s` VALUES(NULL, '%s', '%s');", MYSQL_TABLE, steamid, buffer))
client_authorized(id, NULL_STRING)
}
else
DatabaseID[id] = SQL_ReadResult(query, 0)
}
}
}
public IgnoredOutput(failState, Handle:query, const error[], errNum)
{
if(errNum)
server_print("MYSQL Error # (%d)%s", errNum, error)
}