Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Błąd zapisu MySQL


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 csMaster

    Wszechwiedzący

  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 23.08.2017 21:58

Zrobiłem zapis lvl i exp do zombie moda w taki sposób:

#include <amxmodx>
#include <amxmisc>
#include <zombie_plague_xp>
#include <sqlx>

#define playerlvl(%1) zp_get_user_level(%1)
#define playerxp(%1) zp_get_user_xp(%1)

new Handle:gTuple;

public plugin_init()
{
	register_plugin("[ZP] Save Level/XP", "1.0", "DAMIAN");
	set_task(0.1, "SQL_init");
}

public SQL_init()
{
	gTuple = SQL_MakeDbTuple("sql.pukawka.pl", "root", "unknown", "zombie12_exp");
}

public client_putinserver(id)
{
	CheckData(id);
}

public client_disconnect(id)
{
	SaveData(id);
}

public SaveData(id)
{
	new szName[64], qCommand[512];
	get_user_name(id, szName, charsmax(szName));
	format(qCommand, charsmax(qCommand), "INSERT INTO zombie12_exp (`poziom`, `exp`) VALUES (%d, %d) ON DUPLICATE KEY UPDATE (`poziom`, `exp`) VALUES (%d, %d) WHERE `nick`=^"%s^"", playerlvl(id), playerxp(id), playerlvl(id), playerxp(id), szName);
	SQL_ThreadQuery(gTuple, "SaveData_Handle", qCommand);
}

public SaveData_Handle(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize, QueryTime)
{
	if(Errorcode)
		log_amx("Blad w zapytaniu: %s [SaveData]", Error);
	
	switch(FailState)
	{
		case TQUERY_CONNECT_FAILED:
		{
			log_amx("Nie mozna polaczyc sie z baza danych. [SaveData]");
			return PLUGIN_CONTINUE;
		}
		case TQUERY_QUERY_FAILED:
		{
			log_amx("Zapytanie anulowane. [SaveData]");
			return PLUGIN_CONTINUE;
		}
	}
	
	return PLUGIN_CONTINUE;
}

public CheckData(id)
{
	new szName[64], qCommand[512], Data[1];
	Data[0] = id;
	get_user_name(id, szName, charsmax(szName));
	format(qCommand, charsmax(qCommand), "SELECT * FROM zombie12_exp WHERE `nick`=^"%s^"", szName);
	SQL_ThreadQuery(gTuple, "CheckData_Handle", qCommand, Data, 1);
}

public CheckData_Handle(FailState, Handle:Query, Error[], Errorcode, Data[], DataSize, QueryTime)
{
	new id = Data[0];
	
	if(Errorcode)
		log_amx("Blad w zapytaniu: %s [CheckData]", Error);
	
	switch(FailState)
	{
		case TQUERY_CONNECT_FAILED:
		{
			log_amx("Nie mozna polaczyc sie z baza danych. [CheckData]");
			return PLUGIN_CONTINUE;
		}
		case TQUERY_QUERY_FAILED:
		{
			log_amx("Zapytanie anulowane. [CheckData]");
			return PLUGIN_CONTINUE;
		}
	}
	
	if(!SQL_MoreResults(Query))
		return PLUGIN_CONTINUE;
	
	else
	{
		new poziom, exp;
		poziom = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "poziom"));
		exp = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "exp"));
		zp_set_user_level(id, poziom);
		zp_set_user_xp(id, exp);
	}
	
	return PLUGIN_CONTINUE;
}

Po wrzuceniu tego na serwer gdy wchodzi gracz w konsoli wyświetla się błąd:

L 08/23/2017 - 22:49:58: [zp_save_level.amxx] Blad w zapytaniu: Table 'zombie12_exp.zombie12_exp' doesn't exist [CheckData]
L 08/23/2017 - 22:49:58: [zp_save_level.amxx] Zapytanie anulowane. [CheckData]

W czym jest problem ?

 

ps. Jeśli chodzi o dane sql które podałem wyżej to jest zamieniłem tzn nie podałem prawdziwych (user, password, ...)


  • +
  • -
  • 0

#2 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 24.08.2017 22:38

Prawdopodobnie albo literówka w namiarach na tabelę w danych do bazy, albo zwyczajny brak tej tabeli.
Sprawdź, czy dana tabela istnieje w bazie danych oraz, czy jej nazwa została poprawnie podana w kodzie kwerendy w pluginie.
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych