PDA

Просмотр полной версии : [Вопрос] Не загружает аккаунт (проблема с регистрацией MySQL)



stimorol
21.09.2015, 17:44
Ребята, поставил регистрацию от DeimoS (MySQL) и тут возникла проблема. Когда захожу на сервер и регистрируюсь, всё нормально. Когда перезахожу на сервер, то он мне все сохранения просто обнуляет. Уже всё поперепробывал, помогите пожалуйста.

enum:



enum pInfo
{
pID,
pName[MAX_PLAYER_NAME],
pPassword[30],
pFlooring
};
new PlayerInfo[MAX_PLAYERS][pInfo];



Паблик загрузки аккаунта:



publics UploadPlayerAccount(playerid)
{
PlayerInfo[playerid][pID] = cache_get_field_content_int(0, "ID", mysql_connect_ID);
PlayerInfo[playerid][pFlooring] = cache_get_field_content_int(0, "Flooring", mysql_connect_ID);
SCM(playerid, 0xFFFFFF00, "Вы успешно авторизировались!");
SpawnPlayer(playerid);
return 1;
}



Функция создания нового аккаунта:



stock CreateNewAccount(playerid, password[])
{
new query_string[70+MAX_PLAYER_NAME+30];
format(query_string, sizeof(query_string), "INSERT INTO `accounts` (`PLAYER_NAME`, `PASSWORD`, `Flooring`) VALUES ('%s', '%s', '3')", PlayerInfo[playerid][pName], password);
mysql_function_query(mysql_connect_ID, query_string, false, "", "");

format(query_string, sizeof(query_string), "Аккаунт %s успешно зарегистрирован. Администрация желает Вам приятной игры!", PlayerInfo[playerid][pName]);
SCM(playerid, 0xFFFFFF00, query_string);
SpawnPlayer(playerid);
return 1;
}



Функция сохранения аккаунта:



stock SaveAccount(playerid)
{
new query_string[250];
format(query_string, sizeof(query_string), "UPDATE `accounts` SET `PLAYER_NAME` = '%s' WHERE `ID` = '%d'", PlayerInfo[playerid][pName], PlayerInfo[playerid][pID]);
mysql_tquery(mysql_connect_ID, query_string);
format(query_string, sizeof(query_string), "UPDATE `accounts` SET `PASSWORD` = '%s' WHERE `ID` = '%d'", PlayerInfo[playerid][pPassword], PlayerInfo[playerid][pID]);
mysql_tquery(mysql_connect_ID, query_string);
format(query_string, sizeof(query_string), "UPDATE `accounts` SET `Flooring` = '%s' WHERE `ID` = '%d'", PlayerInfo[playerid][pFlooring], PlayerInfo[playerid][pID]);
mysql_tquery(mysql_connect_ID, query_string);
return 1;
}

$continue$
21.09.2015, 18:49
stock SaveAccount(playerid)
{
new query_string[250];
format(query_string, sizeof(query_string), "UPDATE `accounts` SET `PLAYER_NAME` = '%s' WHERE `ID` = '%d'", PlayerInfo[playerid][pName], PlayerInfo[playerid][pID]);
mysql_tquery(mysql_connect_ID, query_string);
format(query_string, sizeof(query_string), "UPDATE `accounts` SET `PASSWORD` = '%s' WHERE `ID` = '%d'", PlayerInfo[playerid][pPassword], PlayerInfo[playerid][pID]);
mysql_tquery(mysql_connect_ID, query_string);
format(query_string, sizeof(query_string), "UPDATE `accounts` SET `Flooring` = '%s' WHERE `ID` = '%d'", PlayerInfo[playerid][pFlooring], PlayerInfo[playerid][pID]);
mysql_tquery(mysql_connect_ID, query_string);
return 1;
}


Что - то как то бредово, то что можно сделать в 1 запрос - делаешь в 3.
mysql_log пробовал включать?

stimorol
21.09.2015, 18:57
Что - то как то бредово, то что можно сделать в 1 запрос - делаешь в 3.
mysql_log пробовал включать?

Сделал вот так:



stock SaveAccount(playerid)
{
new query_string[1000] = "UPDATE `accounts` SET";
format(query_string, sizeof(query_string), "%s `PLAYER_NAME` = '%s',", query_string, PlayerInfo[playerid][pName]);
mysql_function_query(mysql_connect_ID, query_string, false, "", "");
format(query_string, sizeof(query_string), "%s `PASSWORD` = '%s',", query_string, PlayerInfo[playerid][pPassword]);
mysql_function_query(mysql_connect_ID, query_string, false, "", "");
format(query_string, sizeof(query_string), "%s `Flooring` = '%d',", query_string, PlayerInfo[playerid][pFlooring]);
mysql_function_query(mysql_connect_ID, query_string, false, "", "");
return 1;
}



Вроде-бы всё сохраняет, но выдаёт ошибки:


[22:45:33] [ERROR] CMySQLQuery::Execute[] - (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 '' at line 1
[22:45:33] [ERROR] CMySQLQuery::Execute[] - (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 '' at line 1
[22:45:33] [ERROR] CMySQLQuery::Execute[] - (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 '' at line 1

$continue$
22.09.2015, 00:27
Ошибка в последнем запросе, ",".

stimorol
22.09.2015, 07:54
Ошибка в последнем запросе, ",".

Огромное спасибо! Разобрался.