PHP Code:
#include <amxmodx>
#include <sqlx>
#pragma defclasslib sqlite sqlite
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Author"
#define CREATE "CREATE TABLE IF NOT EXISTS example (steamid varchar(32), name varchar(32));"
#define CREATE2 "CREATE TABLE IF NOT EXISTS example (steamid TEXT, name TEXT);"
#define CREATE3 "CREATE TABLE IF NOT EXISTS stats (steamid TEXT, name TEXT);"
#define SQLITEFILE "SQLITE"
#define SQLITEFILESTATS "SQLITESTATS"
new Handle:g_MySQL
new Handle:g_MySQLITE
new Handle:g_MySQLITESTATS
new QueryError[512]
new QueryNum
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
set_task(2.0, "InitMYSQLQueries")
}
DoBasicInfo(bool:mysql)
{
new affinity[12]
new wanted_type[12]
mysql ? formatex(wanted_type, charsmax(wanted_type), "mysql") : formatex(wanted_type, charsmax(wanted_type), "sqlite")
SQL_GetAffinity(affinity, charsmax(affinity))
server_print("SQLX Affinity: %s", affinity)
server_print("SQLX Wanted: %s", wanted_type)
if (!equal(wanted_type, affinity))
{
if(equal(affinity, "mysql"))
{
SQL_FreeHandle(g_MySQL)
g_MySQL = Empty_Handle
}
new res = SQL_SetAffinity(wanted_type)
server_print("Setting affinity from %s to %s: %s",
affinity,
wanted_type,
res ? "Success" : "Failed")
SQL_GetAffinity(affinity, 11)
server_print("Verification: %s", affinity)
}
}
public InitMYSQLQueries()
{
DoBasicInfo(true)
g_MySQL = SQL_MakeDbTuple(Host,User,Pass,Db)
new szQuery[3][150]
new szData[3][3]
formatex
(
szQuery[0],
charsmax(szQuery[]),
CREATE
)
QueryNum++
szData[0][0] = QueryNum
server_print("Adding to %i queue at: %f", QueryNum, get_gametime())
SQL_ThreadQuery(g_MySQL,"InitialMySQL_Handler",szQuery[0], szData[0], sizeof(szData))
DoBasicInfo(false)
g_MySQLITE = SQL_MakeDbTuple("", "", "", SQLITEFILE)
g_MySQLITESTATS = SQL_MakeDbTuple("", "", "", SQLITEFILESTATS)
formatex
(
szQuery[1],
charsmax(szQuery[]),
CREATE2
)
QueryNum++
szData[1][0] = QueryNum
server_print("Adding to %i queue at: %f", QueryNum, get_gametime())
SQL_ThreadQuery(g_MySQLITE,"InitialMySQL_Handler", szQuery[1], szData[1], sizeof(szData))
formatex
(
szQuery[2],
charsmax(szQuery[]),
CREATE3
)
QueryNum++
szData[2][0] = QueryNum
server_print("Adding to %i queue at: %f", QueryNum, get_gametime())
SQL_ThreadQuery(g_MySQLITESTATS,"InitialMySQL_Handler", szQuery[2], szData[2], sizeof(szData))
}
public InitialMySQL_Handler(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:queuetime)
{
server_print(" --> Resolved query %d, took %f seconds", Data[0], queuetime)
if(FailState == TQUERY_CONNECT_FAILED)
log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error)
else if(FailState == TQUERY_QUERY_FAILED)
{
SQL_GetQueryString(Query,QueryError,charsmax(QueryError))
log_amx("Could not execute query ^"%s^"",QueryError)
}
if(!SQL_NumRows(Query))
{
server_print("No Results.")
}
else
server_print("Created.")
return PLUGIN_HANDLED
}