PDA

Просмотр полной версии : [Вопрос] Сохранение аккаунта



Evgeniy1925
30.06.2017, 17:21
Не сохраняет в Базу Данных данные игрока.
Авторизация проходит успешно (логин,пароль и т.д).
Но при выходе игрока- отсуствует сохранение.


new query[255];
query = "UPDATE `accounts` SET ";
mysql_format(g_SQL, query, sizeof query, "%s`level` = '%i',", query, pl[playerid][pLevel]);
mysql_format(g_SQL, query, sizeof query, "%s`admin` = '%i',", query, pl[playerid][pAdmin]);
mysql_format(g_SQL, query, sizeof query, "%s`vip` = '%i',", query, pl[playerid][pDonateRank]);
mysql_format(g_SQL, query, sizeof query, "%s`marriedTo` = '%s' WHERE `ID` = '%d'", query, pl[playerid][pMarriedTo],pl[playerid][pID]);
mysql_tquery(g_SQL, query, "", "");

MySQL R39-3. лог mysql -без ошибок

$continue$
30.06.2017, 17:51
Т.к мне лень собирать SQL запрос, то выведи его полностью:


new query[255];
query = "UPDATE `accounts` SET ";
mysql_format(g_SQL, query, sizeof query, "%s`level` = '%i',", query, pl[playerid][pLevel]);
mysql_format(g_SQL, query, sizeof query, "%s`admin` = '%i',", query, pl[playerid][pAdmin]);
mysql_format(g_SQL, query, sizeof query, "%s`vip` = '%i',", query, pl[playerid][pDonateRank]);
mysql_format(g_SQL, query, sizeof query, "%s`marriedTo` = '%s' WHERE `ID` = '%d'", query, pl[playerid][pMarriedTo],pl[playerid][pID]);
print(query);
mysql_tquery(g_SQL, query, "", "");


Потом кинь полный запрос с server.log, а и ещё стоит mysql_log?

Evgeniy1925
30.06.2017, 21:14
если отдельно сохранять каждую переменную то нормально ...а если сохранять все вместе при выходе- то не сохраняет..в чем же дело

DeimoS
30.06.2017, 22:56
Тебе ведь написали что нужно сделать =\

Evgeniy1925
01.07.2017, 12:35
в логах ничего отображает (кроме как нормального подключения к бд при запуске сервера).. мб вы код неверный дали

$continue$
01.07.2017, 14:25
server.log не тоже самое, что и mysql.log

в логах ничего отображает (кроме как нормального подключения к бд при запуске сервера).. мб вы код неверный дали

Evgeniy1925
01.07.2017, 18:40
server.log не тоже самое, что и mysql.log

я же и говорю, то что успешно подключилась бд и всё. про сохранения ни слова (

$continue$
01.07.2017, 21:20
Я Вам дал код. Вам трудно скинуть server.log?

я же и говорю, то что успешно подключилась бд и всё. про сохранения ни слова (

DeimoS
02.07.2017, 00:16
Автор, ты если просишь помощи, то будь добр, делай то, что от тебя просят. А иначе решай проблемы сам. Тут тебя никто не будет упрашивать решать твои же проблемы.


https://pp.userapi.com/c630224/v630224711/33176/cERINDQV3yw.jpg

Evgeniy1925
02.07.2017, 18:58
[17:04:22] UPDATE `accounts` SET `level` = '7',`adm` = '1400', WHERE `ID` = '1'
но в базе данных изменений не произошло


new query[100];
query = "UPDATE `accounts` SET ";
mysql_format(g_SQL, query, sizeof query, "%s`level` = '%i',", query, pl[playerid][pLevel]);
mysql_format(g_SQL, query, sizeof query, "%s`adm` = '%i',", query, pl[playerid][pAdmin]);
mysql_format(g_SQL, query, sizeof query, "%s WHERE `ID` = '%d'", query, pl[playerid][pID]);
print(query);
mysql_tquery(g_SQL, query, "", ""); -вот код не рабочий! НО ОН УДОБЕН ТЕМ ЧТО столбиком, у меня там на 90 сохранений переменных. В ряд нереально.


вот рабочий код если без столбика но в ряд...

new query[100];
query = "UPDATE `accounts` SET ";
mysql_format(g_SQL, query, sizeof query, "%s`admin` = '%i',`level` = '%i' WHERE `ID` = '%d'", query, pl[playerid][pAdmin],pl[playerid][pLevel],pl[playerid][pID]);
print(query);
mysql_tquery(g_SQL, query, "", "");

Batya_Montes
02.07.2017, 19:03
[17:04:22] UPDATE `accounts` SET `level` = '7',`adm` = '1400', WHERE `ID` = '1'
но в базе данных изменений не произошло


new query[100];
query = "UPDATE `accounts` SET ";
mysql_format(g_SQL, query, sizeof query, "%s`level` = '%i',", query, pl[playerid][pLevel]);
mysql_format(g_SQL, query, sizeof query, "%s`adm` = '%i',", query, pl[playerid][pAdmin]);
mysql_format(g_SQL, query, sizeof query, "%s WHERE `ID` = '%d'", query, pl[playerid][pID]);
print(query);
mysql_tquery(g_SQL, query, "", ""); -вот код сохранения при выходе игрока


вот рабочий код если в команде применяю ,допустим в /makeadmin

new query[100];
query = "UPDATE `accounts` SET ";
mysql_format(g_SQL, query, sizeof query, "%s`admin` = '%i',`level` = '%i' WHERE `ID` = '%d'", query, pl[playerid][pAdmin],pl[playerid][pLevel],pl[playerid][pID]);
print(query);
mysql_tquery(g_SQL, query, "", "");

я б его использовал бы в onplayerdisconnect но переменных слишком много, около 90,в один ряд не получится... вот попытался столбиком написать - и не сохраняет

зачем перед WHERE ставить запятую ?

Evgeniy1925
02.07.2017, 21:29
перед WHERE Я НЕ ВИЖУ запятой Оо

DeimoS
02.07.2017, 21:55
[17:04:22] UPDATE `accounts` SET `level` = '7',`adm` = '1400', WHERE `ID` = '1'
но в базе данных изменений не произошло


new query[100];
query = "UPDATE `accounts` SET ";
mysql_format(g_SQL, query, sizeof query, "%s`level` = '%i',", query, pl[playerid][pLevel]);
mysql_format(g_SQL, query, sizeof query, "%s`adm` = '%i',", query, pl[playerid][pAdmin]);
mysql_format(g_SQL, query, sizeof query, "%s WHERE `ID` = '%d'", query, pl[playerid][pID]);
print(query);
mysql_tquery(g_SQL, query, "", ""); -вот код не рабочий! НО ОН УДОБЕН ТЕМ ЧТО столбиком, у меня там на 90 сохранений переменных. В ряд нереально.

А теперь посмотри внимательнее на эти 2 запроса

$continue$
02.07.2017, 22:01
ТС, Вы врете и не краснеете. От запятой перед where в mysql_log упадет синтаксическая ошибка. Видать вы живете на другой планете, где в лог не пишется о синтаксической ошибки, либо не умеете пользоваться логами.

Evgeniy1925
02.07.2017, 22:27
что нужно делать друзья?

Batya_Montes
02.07.2017, 22:39
перед WHERE Я НЕ ВИЖУ запятой Оо

тогда вам очки нужны, по другому здесь не помочь

DeimoS
02.07.2017, 23:36
Автор, прочти вот эту (http://pro-pawn.ru/showthread.php?10548-%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D0%BD%D0%B0-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5-%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0-MySQL-R39-R40) тему. Там используется тот же метод форматирования запроса, что и у тебя, и там под одним из спойлеров объясняется как это самое форматирование правильно формировать.