|
Veteran Member
Join Date: Jan 2010
Location: Brazil [<o>]
|

06-11-2011
, 23:21
What is the best method for this plugin (DBI)
|
#1
|
What is the best method for this plugin,
Case 1: Connect to database when the plugin starts. (Disconnect in Plugin_end)
Case 2: Connect to the database when someone Connect to Server (Disconnect in Query fininshed)
CASE 1:
PHP Code:
#include <amxmodx> #include <dbi>
#define TASK 12323
#define PLUGIN "SQL Login" #define MYSITE "SomeSite.com"
new Sql:dbc new Result:result
public plugin_init() { register_plugin(PLUGIN,AMXX_VERSION_STR,"SmileY"); set_task(5.0,"Connect",TASK); }
public Connect() { new error[33],hostname[64],sqluser[64],sqlpass[64],sqldb[64]; get_cvar_string("amx_sql_host",hostname,63); get_cvar_string("amx_sql_db",sqldb,63); get_cvar_string("amx_sql_pass",sqlpass,63); get_cvar_string("amx_sql_user",sqluser,63); dbc = dbi_connect(hostname,sqluser,sqlpass,sqldb,error,32); if(dbc == SQL_FAILED) { set_fail_state("Conexao com mySQL falhou! Revise os dados de login."); } server_print("[%s] Conectado com sucesso ao mySQL!",PLUGIN); }
public plugin_end() { dbi_close(dbc); server_print("[%s] Fechando Conexao com mySQL",PLUGIN); }
public client_authorized(id) { new usersteam[35]; get_user_authid(id,usersteam,charsmax(usersteam)); new username[33]; get_user_name(id,username,charsmax(username));
result = dbi_query(dbc,"SELECT * FROM `z_profile_fields_data` WHERE `pf_steamid` = '%s' AND `pf_nick` = '%s'", usersteam, username);
if(result == RESULT_NONE) { server_cmd("kick #%d ^"Cadastre JA sua STEAM e seu NICK: %s^"",get_user_userid(id),MYSITE); server_print("[%s] (SteamID %s) (Nick %s) nao encontrado(s).",PLUGIN,usersteam,username); return PLUGIN_HANDLED; } else if(result <= RESULT_FAILED) { server_cmd("kick #%d ^"Desculpe, ocorreu um erro em nosso sistema! (Contate: %s)^"",get_user_userid(id),MYSITE); server_print("[%s] Um erro ocorreu no mySQL",PLUGIN); return PLUGIN_HANDLED; } else { server_print("[%s] (SteamID %s) (Nick %s) Conectado!",PLUGIN,usersteam,username); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; }
CASE 2:
PHP Code:
#include <amxmodx> #include <dbi>
#define PLUGIN "SQL Login" #define MYSITE "SomeSite.com"
new Sql:dbc new Result:result
public plugin_init() { register_plugin(PLUGIN,AMXX_VERSION_STR,"SmileY"); }
public Connect() { new error[33],hostname[64],sqluser[64],sqlpass[64],sqldb[64]; get_cvar_string("amx_sql_host",hostname,63); get_cvar_string("amx_sql_db",sqldb,63); get_cvar_string("amx_sql_pass",sqlpass,63); get_cvar_string("amx_sql_user",sqluser,63); dbc = dbi_connect(hostname,sqluser,sqlpass,sqldb,error,32); if(dbc == SQL_FAILED) { set_fail_state("Conexao com mySQL falhou! Revise os dados de login."); } server_print("[%s] Conectado com sucesso ao mySQL!",PLUGIN); }
public plugin_end() { dbi_close(dbc); server_print("[%s] Fechando Conexao com mySQL",PLUGIN); }
public client_authorized(id) { Connect(); // Connect TO DataBase :) new usersteam[35]; get_user_authid(id,usersteam,charsmax(usersteam)); new username[33]; get_user_name(id,username,charsmax(username));
result = dbi_query(dbc,"SELECT * FROM `z_profile_fields_data` WHERE `pf_steamid` = '%s' AND `pf_nick` = '%s'", usersteam, username);
if(result == RESULT_NONE) { server_cmd("kick #%d ^"Cadastre JA sua STEAM e seu NICK: %s^"",get_user_userid(id),MYSITE); server_print("[%s] (SteamID %s) (Nick %s) nao encontrado(s).",PLUGIN,usersteam,username); dbi_close(dbc); return PLUGIN_HANDLED; } else if(result <= RESULT_FAILED) { server_cmd("kick #%d ^"Desculpe, ocorreu um erro em nosso sistema! (Contate: %s)^"",get_user_userid(id),MYSITE); server_print("[%s] Um erro ocorreu no mySQL",PLUGIN); dbi_close(dbc); return PLUGIN_HANDLED; } else { server_print("[%s] (SteamID %s) (Nick %s) Conectado!",PLUGIN,usersteam,username); dbi_close(dbc); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; }
__________________
Last edited by ^SmileY; 06-11-2011 at 23:30.
Reason: LOG: 0.0.1 - Removed AMXMISC
|
|