Jump to content
  • 0

Problema salvare conturi.


Robi[adv]

Question

Recent am creat cu ajutorul unui tutorial un sistem de register si de login , ceva simplu. Problema nu este intimpinata la cod ci la baza de date. La conexiunea cu serverul nu intampin nici-o problema..se conecteaza. Insa dupa register, la relog contul nu ramane salvat.

#define SQL_HOST "localhost"
#define SQL_USER "root"
#define SQL_PASS ""
#define SQL_DB "rpg_db"
new SQL;

// conexiunea se afla in public OnGameModeInit()
SQL = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);

public OnPlayerConnect(playerid)
{
	PlayerInfo[playerid][pLoginTries] = 0;


	gQuery[0] = EOS;
	mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name` = '%e' LIMIT 1", GetName(playerid));
	mysql_tquery(SQL, gQuery, "checkAcount", "i" ,playerid);

	return 1;
}


case DIALOG_REGISTER: 
		{
			if(!response)
				return Kick(playerid);
			if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
				return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Bine ai venit!\nScrie o parola pentru a te putea inregistra.\nParola trebuie sa fie intre 6-32 caractere\nParola nu indeplineste cerintele cerute!", "Register", "Quit");
			gQuery[0] = EOS;
			mysql_format(SQL, gQuery, sizeof gQuery, "INSERT INTO `users` ('Name', 'Password') VALUES ('%s', '%s')", GetName( playerid ), inputtext );
			mysql_tquery(SQL, gQuery, "insertAccount", "d", playerid);
		
			format(PlayerInfo[playerid][pPassword], 32, inputtext);

			ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "E-Mail", "Seteaza-ti parola de e-mail.\nTe rugam sa folosesti o adresa valida.", "Setez","");
		}
              
function insertAccount(playerid) {
	PlayerInfo[playerid][pSQLID] = cache_insert_id();
	printf("%s s-a inregistrat cu SQLID-ul #%d.", GetName(playerid), PlayerInfo[playerid][pSQLID]);
	return 1;
}

function checkAcount(playerid)
{
	switch(cache_num_rows())
	{
		case 0:	ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Bine ai venit!\nScrie o parola pentru a te putea inregistra.\nParola trebuie sa fie intre 6-32 caractere", "Register", "Quit");
		case 1:	ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Bine ai venit!\nScrie parola in casuta de mai jos pentru a te loga!", "Login", "Quit");
	}
	return 1;
}

M-am ajutat de o comanda luata dupa net. public OnQueryError , eroarea este urmatoarea:

[20:46:06 03/27/20] [DEBUG] mysql_connect - host: "localhost", user: "root", database: "rpg_db", password: "****", port: 3306, autoreconnect: true, pool_size: 2
[20:46:06 03/27/20] [DEBUG] CMySQLHandle::Create - creating new connection..
[20:46:06 03/27/20] [DEBUG] CMySQLHandle::CMySQLHandle - constructor called
[20:46:06 03/27/20] [DEBUG] CMySQLHandle::Create - connection created (id: 1)
[20:46:06 03/27/20] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[20:46:06 03/27/20] [DEBUG] CMySQLConnection::Connect - connection was successful
[20:46:06 03/27/20] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[20:46:06 03/27/20] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[20:46:06 03/27/20] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[20:46:06 03/27/20] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
[20:46:06 03/27/20] [DEBUG] CMySQLConnection::Connect - connection was successful
[20:46:06 03/27/20] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[20:46:07 03/27/20] [DEBUG] CMySQLConnection::Connect - connection was successful
[20:46:07 03/27/20] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[20:46:07 03/27/20] [DEBUG] CMySQLConnection::Connect - connection was successful
[20:46:07 03/27/20] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
[20:46:37 03/27/20] [DEBUG] mysql_format - connection: 1, len: 256, format: "SELECT * FROM `users` WHERE `Name` = '%e' LIMIT 1"
[20:46:37 03/27/20] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM `users` WHERE `Name` = 'wRoby' LIMIT 1", callback: "checkAcount", format: "i"
[20:46:37 03/27/20] [DEBUG] CMySQLQuery::Execute[checkAcount] - starting query execution
[20:46:38 03/27/20] [DEBUG] CMySQLQuery::Execute[checkAcount] - query was successfully executed within 1188.293 milliseconds
[20:46:38 03/27/20] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
[20:46:38 03/27/20] [DEBUG] Calling callback "checkAcount"..
[20:46:38 03/27/20] [DEBUG] cache_get_row_count - connection: 1
[20:46:38 03/27/20] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
[20:46:41 03/27/20] [DEBUG] mysql_format - connection: 1, len: 256, format: "INSERT INTO `users` ('Name', 'Password') VALUES ('%s', '%s')"
[20:46:41 03/27/20] [DEBUG] mysql_tquery - connection: 1, query: "INSERT INTO `users` ('Name', 'Password') VALUES ('wRoby', '03200", callback: "insertAccount", format: "d"
[20:46:41 03/27/20] [DEBUG] CMySQLQuery::Execute[insertAccount] - starting query execution
[20:46:41 03/27/20] [ERROR] CMySQLQuery::Execute[insertAccount] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''Name', 'Password') VALUES ('wRoby', '032003')' at line 1 (Query: "INSERT INTO `users` ('Name', 'Password') VALUES ('wRoby', '032003')")
[20:46:41 03/27/20] [DEBUG] CMySQLQuery::Execute[insertAccount] - error will be triggered in OnQueryError
[20:46:41 03/27/20] [DEBUG] Calling callback "OnQueryError"..
[20:46:43 03/27/20] [DEBUG] mysql_format - connection: 1, len: 256, format: "UPDATE 'users' SET 'Email' = '%s' WHERE 'ID' = '%d'"
[20:46:43 03/27/20] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE 'users' SET 'Email' = 'robert' WHERE 'ID' = '0'", callback: "(null)", format: "(null)"
[20:46:43 03/27/20] [DEBUG] CMySQLQuery::Execute[] - starting query execution
[20:46:43 03/27/20] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''users' SET 'Email' = 'robert' WHERE 'ID' = '0'' at line 1 (Query: "UPDATE 'users' SET 'Email' = 'robert' WHERE 'ID' = '0'")
[20:46:43 03/27/20] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
[20:46:43 03/27/20] [DEBUG] Calling callback "OnQueryError"..

 

CMD:credits(playerid, params[]) {
	SendClientMessage(playerid,-1,"Munca depusa merita rasplatita #respect");
	return 1;
}

 

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.