PDA

Просмотр полной версии : [Вопрос] Лишняя цифра в базе данных



Нуб
14.05.2016, 14:39
new ip[30], vhod[40];
GetPlayerIp(playerid,ip,sizeof(ip));
strmid(User[playerid][IpVhod],ip, 0, strlen(ip), 32);
format(vhod,17, "%i.%i.%i",day,month,year);
strmid(User[playerid][Vhod],vhod, 0, strlen(vhod), 40);
UpdatePlayerDataEx(playerid,"Vhod",User[playerid][Vhod]);
UpdatePlayerDataEx(playerid,"IpVhod",User[playerid][IpVhod]);

Это при входе в аккаунт поставил, а так-же загрузку Vhod и IP.

Сегодня число 14.05.2016, а в базе данных стоит вот так - 114.05.2016. В чем проблема?

L0ndl3m
14.05.2016, 15:41
Переменные: day, month, year как записываются?

Нуб
14.05.2016, 15:44
new year, month,day,hour,minuite,second;
getdate(year, month, day);

Но в IP адресе тоже самое.

L0ndl3m
14.05.2016, 15:46
Попрошу выложить эту функцию: UpdatePlayerDataEx.

TheMallard
14.05.2016, 16:01
1. Даты хранить в Unix timestamp.
2. Макс. длина IP - 16 + \0, то есть 17

Daniel_Cortez
14.05.2016, 16:28
Макс. длина IP - 16 + \0, то есть 17
"255.255.255.255" - 15 символов (16 с учётом '\0').

L0ndl3m
14.05.2016, 16:28
Mallard, 255.255.255.255 - 15 символов.
Для нулевого символа ещё одна ячейка. Следовательно нужно выделять 16 ячеек.

TheMallard
14.05.2016, 17:39
Спасибо за подсказку.

Нуб
14.05.2016, 18:32
stock UpdatePlayerDataEx(playerid,field[],data)
{
new query[256];
if(IsTextInvalid(field)) return SendClientMessage(playerid,-1,"Íå ñîõðàíèëèñü.. Íåäîñòóïíûå ñèìâîëû");
format(query,sizeof(query),"UPDATE `accounts` SET `%s` = '%s' WHERE `NamePlayer` = '%s' LIMIT 1",field,data,User[playerid][NamePlayer]);
return mysql_function_query(connects, query, false,"","");
}

TheMallard
15.05.2016, 08:34
Мод не сами писали?

ziggi
15.05.2016, 10:28
Почему бы не записывать данные в массив напрямую?

GetPlayerIp(playerid, User[playerid][IpVhod], 16);
format(User[playerid][Vhod], 11, "%i.%i.%i", day, month, year);
UpdatePlayerDataEx(playerid, "Vhod", User[playerid][Vhod]);
UpdatePlayerDataEx(playerid, "IpVhod", User[playerid][IpVhod]);

Нуб
15.05.2016, 15:55
Спасибо за помощь.

Но проблема моя к сожалению не решена. Я не думаю что проблема связана вот с этим всем, а если это проблема с кодировкой? Я вот тут подумал, да полистал mysql.log, а там вот ошибки такие
Can't initialize character set utf8_bin

Вот моя кодировка при подключении,


mysql_set_charset("utf8_bin");
mysql_function_query(connects, "SET NAMES 'utf8'", false, "", "");
mysql_function_query(connects, "SET CHARACTER SET 'cp1251'", false, "", "");

Вот, как исправить эту ошибку? Наверно все наладиться. Использую MySQL последней версии