Help mysql error
#1

Any can help me to fix it?

Код:
[22:19:24] [DEBUG] mysql_tquery - connection: 1, query: "SELECT COUNT(*) AS exists FROM factions WHERE facname='Staff'", callback: "r@MySQL_CheckFaction", format: "ds"
[22:19:24] [DEBUG] CMySQLQuery::Execute[r@MySQL_CheckFaction] - starting query execution
[22:19:24] [ERROR] CMySQLQuery::Execute[r@MySQL_CheckFaction] - (error #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 'exists FROM factions WHERE facname='Staff'' at line 1
[22:19:24] [DEBUG] CMySQLQuery::Execute[r@MySQL_CheckFaction] - error will be triggered in OnQueryError
[22:19:24] [DEBUG] Calling callback "OnQueryError"..
[22:19:36] [DEBUG] mysql_tquery - connection: 1, query: "SELECT COUNT(*) AS exists FROM factions WHERE facname='Staff'", callback: "r@MySQL_CheckFaction", format: "ds"
[22:19:36] [DEBUG] CMySQLQuery::Execute[r@MySQL_CheckFaction] - starting query execution
[22:19:36] [ERROR] CMySQLQuery::Execute[r@MySQL_CheckFaction] - (error #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 'exists FROM factions WHERE facname='Staff'' at line 1
[22:19:36] [DEBUG] CMySQLQuery::Execute[r@MySQL_CheckFaction] - error will be triggered in OnQueryError
[22:19:36] [DEBUG] Calling callback "OnQueryError"..
Код:
	CMD:fcreate(playerid,params[])
	{
		//new string[40],
		new query[128], localfname[32];
		if(sscanf(params,"s", localfname)) return SendClientMessage(playerid, -1, "Use: /fcreate [name]");
		if(scorelevel[playerid] < 500) return SendClientMessage(playerid, COLOR_RED, "Vocк precisa ter score/level 500 para criar uma faction");
		if(GetPlayerMoneyEx(playerid) < 500000) return SendClientMessage(playerid, COLOR_RED, "You do not have 500.000");
		if(fmembro[playerid] > 0) return SendClientMessage(playerid, COLOR_RED, "Vocк jб tem uma faction");

		format(query,sizeof query,"SELECT COUNT(*) AS exists FROM factions WHERE facname='%s'",localfname);
		mysql_function_query(ConnectMYSQL,query,true,"r@MySQL_CheckFaction","ds",playerid, localfname);
		// /\ importante deixar o cache como TRUE.
		return 1;
	}
Код:
public r@MySQL_CheckFaction(playerid, name[]) {
	new field[11], exists;
	cache_get_field_content(0, "exists", field, ConnectMYSQL);
	exists = strval(field);

	if(exists) {
		// jб existe
		return 1;
	}

	new query[128];
	format(query, sizeof query, "INSERT INTO factions (facname) VALUES ('%s');", name);
	mysql_function_query(ConnectMYSQL,query,true,"r@MySQL_CreateFaction","d",playerid);
	return 1;
}
public r@MySQL_CreateFaction(playerid) {
	new novafacid = cache_insert_id(ConnectMYSQL);
	fmembro[playerid] = novafacid;
	fcargo[playerid] = 5;
	GivePlayerMoneyEx(playerid,-500000);
	SendClientMessage(playerid,-1,"Sua facзгo foi criada com sucesso!");
	return 1;
}
Reply
#2

Exists is mysql reserved keyword, you need to escape them with backtick `
https://dev.mysql.com/doc/refman/5.0/en/keywords.html
Here's the right syntax.
Код:
format(query,sizeof query,"SELECT COUNT(*) AS `exists` FROM factions WHERE facname='%s'",localfname);
Reply
#3

Quote:
Originally Posted by X337
Посмотреть сообщение
Exists is mysql reserved keyword, you need to escape them with backtick `
https://dev.mysql.com/doc/refman/5.0/en/keywords.html
Here's the right syntax.
Код:
format(query,sizeof query,"SELECT COUNT(*) AS `exists` FROM factions WHERE facname='%s'",localfname);
+rep, ty u so much
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)