#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#define PLUGIN "PluginName"
#define VERSION "1.0"
#define AUTHOR ".:Vitek:."
new Handle:gTuple, bool:gConnected, iTeam[32]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /mysql_test", "PokazTo");
}
public PokazTo(id)
{
UtworzPojemnik(id)
DodajWpis(id)
WczytajWpis(id)
client_print(id, print_center, "Jezeli %s to twoj team to wszystko dziala poprawnie:)", iTeam[id])
}
public UtworzPojemnik(id)
{
gTuple = SQL_MakeDbTuple("127.0.0.1", "root", "tu_haslo", "nauka")
new qCommand[512]
format(qCommand, sizeof qCommand-1, "CREATE TABLE IF NOT EXISTS `%s` ( `nick` VARCHAR( 64 ),`team` VARCHAR( 64 )")
SQL_ThreadQuery(gTuple, "UtworzPojemnikHandle", qCommand)
}
public UtworzPojemnikHandle(FailState, Handle:Query, Errorcode, Error[], Data[], DataSize)
{
gConnected = true
if(Errorcode){
log_amx("[CreateData] Blad w zapytaniu: %s", Error)
gConnected = false
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_amx("Nie mozna polaczyc sie z baza danych.")
gConnected = false
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_amx("[CreateData] Zapytanie anulowane")
gConnected = false
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
public WczytajWpis(id)
{
if(!gConnected) return
new Data[1]
Data[0] = id
new qCommand[512], szName[32]
get_user_name(id, szName, charsmax(szName))
format(qCommand, sizeof qCommand-1, "SELECT * FROM `nauka` WHERE `nick` = '%s'", szName)
SQL_ThreadQuery(gTuple, "WczytajWpisHandle", qCommand, Data, 1)
}
public WczytajWpisHandle(FailState, Handle:Query, Errorcode, Error[], Data[], DataSize)
{
new id = Data[0]
if(Errorcode)
log_amx("[ChceckData] Blad w zapytaniu: %s", Error)
if(FailState == TQUERY_CONNECT_FAILED)
{
log_amx("Nie mozna polaczyc sie z baza danych.")
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_amx("[CheckData] Zapytanie anulowane")
return PLUGIN_CONTINUE
}
if(!SQL_MoreResults(Query))
DodajWpis(id)
else
{
iTeam[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "team"))
}
return PLUGIN_CONTINUE
}
public DodajWpis(id)
{
if(!gConnected) return
new Data[1]
Data[0] = id
new qCommand[512], szName[32], szTeam[32]
get_user_name(id, szName, charsmax(szName))
get_user_team(id, szTeam, charsmax(szTeam))
format(qCommand, sizeof qCommand-1, "INSERT INTO nauka VALUES(%s, %s);", szName, szTeam)
SQL_ThreadQuery(gTuple, "DodajWpisHandle", qCommand, Data, 1)
}
public DodajWpisHandle(FailState, Handle:Query, Errorcode, Error[], Data[], DataSize)
{
if(Errorcode)
log_amx("[SaveData] Blad w zapytaniu: %s", Error)
if(FailState == TQUERY_CONNECT_FAILED)
{
log_amx("Nie mozna polaczyc sie z baza danych.")
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_amx("[SaveData] Zapytanie anulowane")
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
Log z konsoli:
L 06/15/2011 - 15:49:30: Start of error session. L 06/15/2011 - 15:49:30: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20110615.log") L 06/15/2011 - 15:49:30: String formatted incorrectly - parameter 4 (total 3) L 06/15/2011 - 15:49:30: [AMXX] Displaying debug trace (plugin "test_mysql.amxx") L 06/15/2011 - 15:49:30: [AMXX] Run time error 25: parameter error L 06/15/2011 - 15:49:30: [AMXX] [0] test_mysql.sma::UtworzPojemnik (line 30) L 06/15/2011 - 15:49:30: [AMXX] [1] test_mysql.sma::PokazTo (line 20)
Użytkownik MarWit edytował ten post 19.06.2011 15:03