PDA

View Full Version : Mysql Connection error


justjamie
10/05/2016, 12:19 PM
hello.
i'm trying to install a mysql ban system in my script (http://forum.sa-mp.com/showthread.php?t=429651),

but everytime i compile it, i get these errors:

C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(23) : error 001: expected token: "-string end-", but found "-identifier-"
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(23) : error 017: undefined symbol "mmrp_sampbans"
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(23) : warning 215: expression has no effect
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(23) : error 001: expected token: "-string end-", but found "-identifier-"
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(23) : fatal error 107: too many error messages on one line

this is my code:

//Includes-------------

#include <a_samp>
#include <a_mysql>
#include <zcmd>

// -----------------database defines------------------
#define mysql_host "HIDDEN"
#define mysql_user "HIDDEN"
#define mysql_password ""HIDDEN""
#define mysql_database ""HIDDEN""

// ----------------color defines ---------------------
#define C_RED 0xFF0000FF
#define C_GREY 0xAFAFAFFF
#define C_BLUE 0x0000BBFF
#define C_WHITE 0xFFFFFFFF


//================Script ==============================
public OnFilterScriptInit()
{
mysql_connect(mysql_host, mysql_user, mysql_database, mysql_password);

mysql_query("CREATE TABLE IF NOT EXISTS bandata(admin VARCHAR(20), player VARCHAR(20), reason VARCHAR(50), IP VARCHAR(16), banned INT(10))");
if(mysql_ping() == 1)
{
mysql_debug(1);
printf("[MYSQL] Connection with the BAN database: SUCCESS!");
}
else
{
printf("[MYSQL] Connection with the BAN database: FAIL!");
}
return 1;
}

public OnFilterScriptExit()
{
return 1;
}

public OnPlayerConnect(playerid)
{
MySQL_BanCheck(playerid);
return 1;
}



//======================Ban system Stocks=====================================
stock escpname(playerid)
{
new escname[24], Pname[24];
GetPlayerName(playerid, Pname, 24);
mysql_real_escape_string(Pname, escname);
return escname;
}
stock PlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
return name;
}
stock MySQL_BanCheck(playerid)
{
new query[200], admin[50], pname[50], IP[16], string1[100];
GetPlayerIp(playerid, IP, 16);
format(query, sizeof(query),"SELECT * FROM `bandata` WHERE(`player`='%s' OR `IP`='%s') AND `banned`=1 LIMIT 1", escpname(playerid), IP);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows() != 0)
{
while(mysql_fetch_row(query))
{
mysql_fetch_field_row(admin, "admin");
mysql_fetch_field_row(pname, "player");
mysql_fetch_field_row(string1, "reason");
}

new string[50], str[50], str1[100];
format(string, sizeof(string),"Admin: %s", admin);
format(str, sizeof(str),"Player: %s", pname);
format(str1, sizeof(str1),"Reason: %s", string1);
SendClientMessage(playerid, C_RED,"You are banned from this server!");
SendClientMessage(playerid, C_RED,"___________________");
SendClientMessage(playerid, C_RED, str);
SendClientMessage(playerid, C_RED, string);
SendClientMessage(playerid, C_RED, str1);
SendClientMessage(playerid, C_RED,"___________________");
SendClientMessage(playerid, C_RED, "If you think that this BAN was a mistake, then post a screenshot(using F8) on our website");
SendClientMessage(playerid, C_RED, "www.yourservername.com");
Kick(playerid);
}
mysql_free_result();
return 1;
}

stock sscanf(string[], format[], {Float,_}:...)
{
#if defined isnull
if (isnull(string))
#else
if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
#endif
{
return format[0];
}
#pragma tabsize 4
new
formatPos = 0,
stringPos = 0,
paramPos = 2,
paramCount = numargs(),
delim = ' ';
while (string[stringPos] && string[stringPos] <= ' ')
{
stringPos++;
}
while (paramPos < paramCount && string[stringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = string[stringPos];
if (ch == '-')
{
neg = -1;
ch = string[++stringPos];
}
do
{
stringPos++;
if ('0' <= ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return -1;
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
num = 0,
ch = string[stringPos];
do
{
stringPos++;
switch (ch)
{
case 'x', 'X':
{
num = 0;
continue;
}
case '0' .. '9':
{
num = (num << 4) | (ch - '0');
}
case 'a' .. 'f':
{
num = (num << 4) | (ch - ('a' - 10));
}
case 'A' .. 'F':
{
num = (num << 4) | (ch - ('A' - 10));
}
default:
{
return -1;
}
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, string[stringPos++]);
}
case 'f':
{

new changestr[16], changepos = 0, strpos = stringPos;
while(changepos < 16 && string[strpos] && string[strpos] != delim)
{
changestr[changepos++] = string[strpos++];
}
changestr[changepos] = '\0';
setarg(paramPos,0,_:floatstr(changestr));
}
case 'p':
{
delim = format[formatPos++];
continue;
}
case '\'':
{
new
end = formatPos - 1,
ch;
while ((ch = format[++end]) && ch != '\'') {}
if (!ch)
{
return -1;
}
format[end] = '\0';
if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
{
if (format[end + 1])
{
return -1;
}
return 0;
}
format[end] = '\'';
stringPos = ch + (end - formatPos);
formatPos = end + 1;
}
case 'u':
{
new
end = stringPos - 1,
id = 0,
bool:num = true,
ch;
while ((ch = string[++end]) && ch != delim)
{
if (num)
{
if ('0' <= ch <= '9')
{
id = (id * 10) + (ch - '0');
}
else
{
num = false;
}
}
}
if (num && IsPlayerConnected(id))
{
setarg(paramPos, 0, id);
}
else
{
#if !defined foreach
#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
#define __SSCANF_FOREACH__
#endif
string[end] = '\0';
num = false;
new
name[MAX_PLAYER_NAME];
id = end - stringPos;
foreach (Player, playerid)
{
GetPlayerName(playerid, name, sizeof (name));
if (!strcmp(name, string[stringPos], true, id))
{
setarg(paramPos, 0, playerid);
num = true;
break;
}
}
if (!num)
{
setarg(paramPos, 0, INVALID_PLAYER_ID);
}
string[end] = ch;
#if defined __SSCANF_FOREACH__
#undef foreach
#undef __SSCANF_FOREACH__
#endif
}
stringPos = end;
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = string[stringPos++]) && ch != delim)
{
setarg(paramPos, i++, ch);
}
if (!i)
{
return -1;
}
}
else
{
while ((ch = string[stringPos++]))
{
setarg(paramPos, i++, ch);
}
}
stringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
{
stringPos++;
}
while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
{
stringPos++;
}
paramPos++;
}
do
{
if ((delim = format[formatPos++]) > ' ')
{
if (delim == '\'')
{
while ((delim = format[formatPos++]) && delim != '\'') {}
}
else if (delim != 'z')
{
return delim;
}
}
}
while (delim > ' ');
return 0;
}



what's the problem here?

Konstantinos
10/05/2016, 12:24 PM
#define mysql_host "HIDDEN"
#define mysql_user "HIDDEN"
#define mysql_password ""HIDDEN""
#define mysql_database ""HIDDEN""

Remove the extra symbols marked with red color.

justjamie
10/05/2016, 12:43 PM
#define mysql_host "HIDDEN"
#define mysql_user "HIDDEN"
#define mysql_password ""HIDDEN""
#define mysql_database ""HIDDEN""

Remove the extra symbols marked with red color.

yea i saw that short after.
now i get these errors:


C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(25) : error 035: argument type mismatch (argument 1)
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(26) : error 017: undefined symbol "mysql_ping"
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(28) : warning 206: redundant test: constant expression is non-zero
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(28) : warning 215: expression has no effect
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(70) : error 035: argument type mismatch (argument 1)
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(71) : error 017: undefined symbol "mysql_store_result"
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(72) : error 017: undefined symbol "mysql_num_rows"
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(74) : error 017: undefined symbol "mysql_fetch_row"
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(76) : error 017: undefined symbol "mysql_fetch_field_row"
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(77) : error 017: undefined symbol "mysql_fetch_field_row"
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(78) : error 017: undefined symbol "mysql_fetch_field_row"
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(95) : error 017: undefined symbol "mysql_free_result"
C:\Users\Jamie\Desktop\xd\Syndicate RP\filterscripts\bansystem.pwn(100) : error 021: symbol already defined: "sscanf"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


11 Errors.

Konstantinos
10/05/2016, 01:03 PM
That system uses a very old version of the mysql plugin (R5 or R6) as well as the sscanf function written in PAWN. I would highly advise you to update it to R39-5 with threaded queries for faster performance and use the sscanf plugin too.

If your decision will be to update it, I'll post the appropriate links to read few tutorials and its usage and anything you don't understand just say it so I (or other users) can explain it to you. Otherwise, download the correct version of it.

justjamie
10/05/2016, 01:06 PM
That system uses a very old version of the mysql plugin (R5 or R6) as well as the sscanf function written in PAWN. I would highly advise you to update it to R39-5 with threaded queries for faster performance and use the sscanf plugin too.

If your decision will be to update it, I'll post the appropriate links to read few tutorials and its usage and anything you don't understand just say it so I (or other users) can explain it to you. Otherwise, download the correct version of it.

Where can i find this version specificly?

Konstantinos
10/05/2016, 01:09 PM
http://forum.sa-mp.com/showthread.php?t=56564

At the bottom of the first post at "Downloads:" section.