PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#define TEXT_ACCESS ADMIN_BAN
new const host[] = ""
new const user[] = ""
new const pass[] = ""
new const db[] = ""
new const table[] = "sql_text"
#define PLUGIN "SQL Save Note"
#define VERSION "1.0"
new Handle:g_Tuple
public plugin_init(){
register_plugin(PLUGIN, VERSION, "DusT")
register_clcmd("say", "sqlSay")
}
public plugin_cfg(){
set_task(0.5, "connectDb")
}
public sqlSay(id){
new arg[6]
read_argv(1, arg, charsmax(arg))
if(!equali(arg, ".text"))
return PLUGIN_CONTINUE
if(!(get_user_flags(id) & TEXT_ACCESS))
return PLUGIN_HANDLED
new message[ 192 ], length = strlen(arg) + 1
read_args(message, charsmax(message))
remove_quotes(message)
remove_quotes(message[length])
if(!message[length])
return PLUGIN_HANDLED
updateDb(id, message[length])
client_print(id, print_chat, "* Message Saved")
return PLUGIN_HANDLED
}
public connectDb(){
g_Tuple = SQL_MakeDbTuple(host, user, pass, db)
new query[512]
formatex(query, charsmax(query), "CREATE TABLE IF NOT EXISTS %s(admin VARCHAR(31) NOT NULL,admin_steamid VARCHAR(35) NOT NULL,datetime DATETIME NOT NULL,message VARCHAR(192) NOT NULL)", table)
SQL_ThreadQuery(g_Tuple, "checkTable", query)
}
public checkTable(failState, Handle:query, const error[], errNum)
{
if (errNum)
set_fail_state(error)
}
public resetDb(){
new query[128]
formatex(query, charsmax(query), "DELETE FROM %s", table)
SQL_ThreadQuery(g_Tuple, "ignoreHandle", query)
}
public updateDb(id, message[]){
resetDb()
new name[32], escName[64], steamid[35], escMessage[ 280 ]
get_user_name(id, name, charsmax(name))
SQL_QuoteString(Empty_Handle, escName, charsmax(escName), name)
SQL_QuoteString(Empty_Handle, escMessage, charsmax(escMessage), message)
get_user_authid(id, steamid, charsmax(steamid))
new query[512]
formatex(query, charsmax(query), "INSERT INTO %s VALUES('%s','%s',NOW(),'%s')", table, escName, steamid, escMessage)
SQL_ThreadQuery(g_Tuple, "ignoreHandle", query)
}
public ignoreHandle(FailState,Handle:query, error[], errNum)
{
SQL_FreeHandle(query)
return PLUGIN_HANDLED
}