jak łącze się z baza to to wyskakuje mi error
[xpSQL.amxx] Blad w zapytaniu: L, PRIMARY KEY (`nick`) ) [SaveData]
ktos mnie naprowadzi na naprawe tego bledu
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#define PLUGIN "zapis XP na SQL"
#define VERSION "1.0"
#define AUTHOR "rydy17"
new Handle: g_SqlTuple;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
g_SqlTuple = SQL_MakeDbTuple("hf", "us", "pw", "asd");
if(g_SqlTuple == Empty_Handle)
set_fail_state("Nie mozna utworzyc uchwytu do polaczenia");
new iErr, szError[144];
new Handle:link = SQL_Connect(g_SqlTuple, iErr, szError, 143);
if(link == Empty_Handle) {
log_amx("Error (%d): %s", iErr, szError);
set_fail_state("Brak polaczenia z baza danych");
}
new Handle:query;
query = SQL_PrepareQuery(link,
"CREATE TABLE IF NOT EXISTS 1testxpmodsql1 ( 1nick1 varchar(32 NOT NULL auto_increment,\
`mapa` varchar(32) NOT NULL,\
PRIMARY KEY (`nick`) )");
SQL_Execute(query);
SQL_FreeHandle(query);
}
public Query(failstate, Handle:query, error[]) {
if(failstate != TQUERY_SUCCESS) {
log_amx("Blad SQL: %s", error);
return;
}
}
public client_disconnect(id)
{
SaveData(id);
}
/////////////////////////////////////////
public client_conected(id)
{
new buffer[512],nick[32] ,mapa[32]
//get_user_authid(id,steamid,31);
get_user_name(id,nick,31)
get_mapname(mapa,31);
formatex(buffer, charsmax(buffer), "INSERT INTO `testxpmodsql` VALUES (NULL, '%s', '%s');",nick,mapa );
SQL_ThreadQuery(g_SqlTuple, "Query", buffer);
}
public SaveData(id)
{
//if(!gConnected) return
new Data[1]
//Data[0] = id
new qCommand[512], nick[32],sid[32],mapa[21];
get_user_authid(id, sid, 31)
get_user_name(0, nick, charsmax(nick));
get_mapname(mapa,20)
format(qCommand, sizeof qCommand-1, "INSERT INTO testxpmodsql VALUES(%s, %s)", nick,mapa)
SQL_ThreadQuery(g_SqlTuple, "SaveHandler", qCommand, Data, 1);
}
public LoadData(id)
{
new Data[1]
Data[0] = id
new q_command[512], nick[32];
get_user_name(id,nick,31)
format(q_command,511,"SELECT * FROM testxpmodsql WHERE nick = '%s'",nick)
SQL_ThreadQuery(g_SqlTuple, "SaveHandler", q_command, Data, 1);
}
public checkSqlHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(Errcode)
{
log_to_file("addons/amxmodx/logs/sql.log","Error on checkSqlHandle query: %s",Error)
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_to_file("addons/amxmodx/logs/sql.log","Could not connect to SQL database.")
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_to_file("addons/amxmodx/logs/sql.log","checkSqlHandle Query failed.")
return PLUGIN_CONTINUE
}
new id = Data[0]
new linia[512], nick[32], sid[35] ,mapa [31]
if(!SQL_MoreResults(Query)) // Nie znaleziono wpisów w bazie danych. Możemy spokojnie utworzyć.
SaveData(id)
else // A jednak coś znalazł ! Żeby nie robić kolejnej funkcji od razu odczytujemy.
{
nick[0]= SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "nick")) // Ponieważ funkcja SQL_ReadResult wymaga ID pola, a my go nie mamy musimy posłużyć się funkcją SQL_FieldNameToNum.
mapa[0] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "mapa")) // j/w
//sid[0] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "steamid")) // j/w
}
formatex(linia,511," %s %s %s",nick,mapa);
log_amx("%s",linia);
return PLUGIN_CONTINUE
}
public SaveHandler(FailState, Handle:Query, Errorcode, Error[], Data[], DataSize)
{
log_amx("dziala");
new id = Data[0]
if(Errorcode)
log_amx("Blad w zapytaniu: %s [SaveData]", Error)
if(FailState == TQUERY_CONNECT_FAILED)
{
log_amx("Nie mozna podlaczyc sie do bazy danych.")
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_amx("Zapytanie anulowane [SaveData]")
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}


Dodatki SourceMod




Moja zawartość
Mężczyzna