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

Problem z zapytaniem do bazy danych, błąd w zapytaniu


Najlepsza odpowiedź Puchate , 02.11.2015 15:24

Nawet nie raczyłeś zdebugować tego błędu... ani przyjrzeć się zapytaniu, eh :)

 

Wystarczyło zapisać zapytanie do pliku (bądź usunąć z pluginowego znaki \) i wykonać zapytanie do bazy danych przez narzędzie co lepiej zaraportuje błąd, np. phpmyadmin.

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATETIME NOT NULL,
            date_ungag DATETIME NOT NULL,
            gag_seconds INT NOT NUL' at line 8 

Mianowicie...

 

 

player_ip VARCHAR(15) NOT NULL, PRIMARY KEY\

 

 

nie w tym miejscu, nieprawdaż?

 

Przejdź do postu


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

#1 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 31.10.2015 21:29

Witam, przerabiam sobie admin_gag, tak aby gagi szły na IP

 

Jednak na chwilę obecną wyrzuca mi takie błędy:

Failed create table query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to us

 

 

Kod:

enum _:GagData
{
	GAG_AUTHID[ 35 ],
	GAG_NAME[33], 
	GAG_TIME,
	GAG_START,
	GAG_FLAGS
};

new g_szAuthid[ MAX_PLAYERS + 1 ][ 15 ];

public plugin_init( )
{
	// set server's SteamID to "SERVER"
	copy( g_szAuthid[ 0 ], charsmax( g_szAuthid[ ] ), "SERVER" );
}

InitSQL( )
{
	// init SQL after configs were executed
	if( get_pcvar_num( g_pCvarSQL ) )
	{
		new szHost[ 64 ], szUser[ 64 ], szPass[ 64 ], szDb[ 64 ];
		get_pcvar_string( g_pCvarSQLHost, szHost, charsmax( szHost ) );
		get_pcvar_string( g_pCvarSQLUser, szUser, charsmax( szUser ) );
		get_pcvar_string( g_pCvarSQLPass, szPass, charsmax( szPass ) );
		get_pcvar_string( g_pCvarSQLDb,   szDb,   charsmax( szDb   ) );
		
		g_hSqlTuple = SQL_MakeDbTuple( szHost, szUser, szPass, szDb );
		
		if( g_hSqlTuple == Empty_Handle ) return;
		
		// TABLE STRUCTURE
		// admin_name VARCHAR(32) NOT NULL
		// admin_steamid VARCHAR(35) NOT NULL
		// admin_ip VARCHAR(15) NOT NULL
		// player_name VARCHAR(32) NOT NULL
		// player_steamid VARCHAR(35) NOT NULL PRIMARY KEY
		// player_ip VARCHAR(15) NOT NULL
		// date_gagged DATETIME NOT NULL
		// date_ungag DATETIME NOT NULL
		// gag_seconds INT NOT NULL
		// gag_flags VARCHAR(3) NOT NULL
		
		new iError, szError[ 128 ];
		new Handle:hDb = SQL_Connect( g_hSqlTuple, iError, szError, charsmax( szError ) );
		
		if( hDb == Empty_Handle )
		{
			log_amx( "Failed to connect to database: (%d) %s", iError, szError );
			return;
		}
		
		new Handle:hQuery = SQL_PrepareQuery( hDb, "CREATE TABLE IF NOT EXISTS gagged_players2 (\
			admin_name VARCHAR(32) NOT NULL,\
			admin_steamid VARCHAR(35) NOT NULL,\
			admin_ip VARCHAR(15) NOT NULL,\
			player_name VARCHAR(32) NOT NULL,\
			player_steamid VARCHAR(35) NOT NULL,\
			player_ip VARCHAR(15) NOT NULL, PRIMARY KEY\
			date_gagged DATETIME NOT NULL,\
			date_ungag DATETIME NOT NULL,\
			gag_seconds INT NOT NULL,\
			gag_flags VARCHAR(3) NOT NULL);" );
		
		if( !SQL_Execute( hQuery ) )
		{
			SQL_QueryError( hQuery, szError, charsmax( szError ) );
			log_amx( "Failed create table query: %s", szError ); //tu blad
		}
		else
		{
			//kod
		}
	}
}

public client_authorized( id )
	get_user_ip( id, g_szAuthid[ id ], charsmax(g_szAuthid[ ]), 1);

public client_disconnect( id )
	g_szAuthid[ id ][ 0 ] = '^0';

AddGag( admin, player, iGagTime, iFlags )
{
	new szAdminName[ 32 ], adminsid[ 35 ];
	
	if( admin )
		get_user_name( admin, szAdminName, charsmax( szAdminName ) );
	else
		copy( szAdminName, charsmax( szAdminName ), "SERVER" );
	
	get_user_authid( admin, adminsid, charsmax( adminsid ));
	
	new szPlayerName[ 32 ], playersid[ 35 ];
	get_user_name( player, szPlayerName, charsmax( szPlayerName ) );
	get_user_authid( player, playersid, charsmax( playersid ));
	
	new szDateNow[ DATE_SIZE ], szDateUngag[ DATE_SIZE ];
	get_time( DATETIME_FORMAT, szDateNow, charsmax( szDateNow ) );
	format_time( szDateUngag, charsmax( szDateUngag ), DATETIME_FORMAT, get_systime( ) + iGagTime );
	
	new szFlags[ 4 ];
	get_flags( iFlags, szFlags, charsmax( szFlags ) );
	
	new szQuery[ 256 ];
	formatex( szQuery, charsmax( szQuery ), "REPLACE INTO gagged_players2 \
		(admin_name, admin_steamid, admin_ip, player_name, player_steamid, player_ip, date_gagged, date_ungag, gag_seconds, gag_flags) \
		VALUES \
		(^"%s^", ^"%s^", ^"%s^", ^"%s^", ^"%s^", ^"%s^", ^"%s^", ^"%s^", %d, ^"%s^");",\
		szAdminName, adminsid, g_szAuthid[ admin  ],\
		szPlayerName, playersid, g_szAuthid[ player ],\
		szDateNow, szDateUngag, iGagTime, szFlags );
	
	SQL_ThreadQuery( g_hSqlTuple, "QueryAdd", szQuery );
}

public QueryAdd( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:flQueueTime )
{
	switch( iFailState )
	{
		case TQUERY_CONNECT_FAILED: log_amx( "Failed to connect to database: (%d) %s", iError, szError );
		case TQUERY_QUERY_FAILED:   log_amx( "Failed add gag query: (%d) %s", iError, szError ); //tu tez blad
	}
}

  • +
  • -
  • 0

#2 Ogen Dogen

    Czempion

  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 01.11.2015 01:21


gag_seconds INT NOT NULL,\

 

Z tego co pamiętam do inta też trzeba podać rozmiar ;)


  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#3 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 01.11.2015 14:44

gag_seconds INT NOT NULL,\

 
Z tego co pamiętam do inta też trzeba podać rozmiar ;)

Jak nie podasz, to ustawi standardowo, czyli 11.


Co do błędu, może spróbuj bez tego załamywania stringa przy pomocy \, może podaj engine, nie wiem, musisz popróbować.
sebul (01.11.2015 14:46):
A chyba jednak coś z "PRIMARY KEY" masz nie tak ^ ^

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#4 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 01.11.2015 23:08

usun , PRIMARY KEY


  • +
  • -
  • 0

#5 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 02.11.2015 00:45

usun , PRIMARY KEY

Jak już - zmień sposób jego ustawienia na poprawny (a jak to zrobić, to jest tego dużo w necie), bo zawsze powinno się określać unikalny klucz dla tabeli.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#6 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 02.11.2015 15:24   Najlepsza odpowiedź

Nawet nie raczyłeś zdebugować tego błędu... ani przyjrzeć się zapytaniu, eh :)

 

Wystarczyło zapisać zapytanie do pliku (bądź usunąć z pluginowego znaki \) i wykonać zapytanie do bazy danych przez narzędzie co lepiej zaraportuje błąd, np. phpmyadmin.

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATETIME NOT NULL,
            date_ungag DATETIME NOT NULL,
            gag_seconds INT NOT NUL' at line 8 

Mianowicie...

 

 

player_ip VARCHAR(15) NOT NULL, PRIMARY KEY\

 

 

nie w tym miejscu, nieprawdaż?

 


  • +
  • -
  • 1




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

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