You will need to change the queries to match your table.
Unthreaded:
Code:
CheckLogin( iPlayer, const szUserName[ ], const szPassword[ ] )
{
new iError, szError[ 128 ];
new Handle:hDb = SQL_Connect( g_hSqlTuple, iError, szError, charsmax( szError ) );
if( hDb != Empty_Handle )
{
new Handle:hQuery = SQL_PrepareQuery( hDb, "SELECT COUNT(*) FROM users WHERE username = ^"%s^" AND password = ^"%s^";", szUserName, szPassword );
if( !SQL_Execute( hQuery ) )
{
SQL_QueryError( hQuery, szError, charsmax( szError ) );
log_amx( "Error checking login: %s", szError );
}
else if( SQL_ReadResult( hQuery, 0 ) > 0 )
{
client_print( iPlayer, print_chat, "* Successfully logged in!" );
}
else
{
client_print( iPlayer, print_chat, "* Login failed!" );
}
SQL_FreeHandle( hQuery );
SQL_FreeHandle( hDb );
}
else
{
log_amx( "Error connecting to SQL: %s", szError );
}
}
Threaded:
Code:
CheckLogin( iPlayer, const szUserName[ ], const szPassword[ ] )
{
new szQuery[ 128 ];
formatex( szQuery, charsmax( szQuery ), "SELECT COUNT(*) FROM users WHERE username = ^"%s^" AND password = ^"%s^";", szUserName, szPassword );
new iData[ 1 ];
iData[ 0 ] = iPlayer;
SQL_ThreadQuery( g_hSqlTuple, "QueryCheckLogin", szQuery, iData, sizeof( iData ) );
}
public QueryCheckLogin( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:flQueueTime )
{
switch( iFailState )
{
case TQUERY_CONNECT_FAILED:
{
log_amx( "Error connecting to SQL: %s", szError );
}
case TQUERY_QUERY_FAILED:
{
log_amx( "Error checking login: %s", szError );
}
case TQUERY_SUCCESS:
{
new iPlayer = iData[ 0 ];
if( SQL_ReadResult( hQuery, 0 ) > 0 )
{
client_print( iPlayer, print_chat, "* Successfully logged in!" );
}
else
{
client_print( iPlayer, print_chat, "* Login failed!" );
}
}
}
}
__________________