Просмотр полной версии : [Вопрос] Лишняя цифра в базе данных
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. В чем проблема?
Переменные: day, month, year как записываются?
new year, month,day,hour,minuite,second;
getdate(year, month, day);
Но в IP адресе тоже самое.
Попрошу выложить эту функцию: 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').
Mallard, 255.255.255.255 - 15 символов.
Для нулевого символа ещё одна ячейка. Следовательно нужно выделять 16 ячеек.
TheMallard
14.05.2016, 17:39
Спасибо за подсказку.
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
Мод не сами писали?
Почему бы не записывать данные в массив напрямую?
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]);
Спасибо за помощь.
Но проблема моя к сожалению не решена. Я не думаю что проблема связана вот с этим всем, а если это проблема с кодировкой? Я вот тут подумал, да полистал 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 последней версии
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot