Как записать больше информации в format MySQL -
Bren - 02.04.2017
Не хватает format для записи профиля в базу.
Вылезает ошибка при превышении format[] в
PHP Code:
format format(output[], len, const format[], {Float,_}:...);
Не подскажите как будет лучше записать ?
Может так?
PHP Code:
format(str, sizeof(str), "INSERT INTO `profile` (`name`) VALUES ('%s')");
strcat(stringg, str);
Re: Как записать больше информации в format MySQL -
][Noname][ - 02.04.2017
непонятен вопрос
Re: Как записать больше информации в format MySQL -
Bren - 02.04.2017
Есть строка
format форматирование, в ней 551 символа.
При компиляции вылезает ошибка:
error 075: input line too long (after substitutions) - слишком длинная строка.
Данная строка хранит записи данных об аккаунте которые будут отправлены в базу данных.
PHP Code:
Пример: INSERT INTO `profile` (`name`) VALUES ('%s')
Ну и вот как уместить все данные в строку
Объединять их с помощью
strcat, или возможно сделать по-другому?
Re: Как записать больше информации в format MySQL -
OKStyle - 03.04.2017
Несколько запросов?
Re: Как записать больше информации в format MySQL -
][Noname][ - 03.04.2017
используй другой компилятор
Re: Как записать больше информации в format MySQL -
stabker - 03.04.2017
http://forum.sa-mp.com/showpost.php?...20&postcount=4 (лучше первый вариант)
Re: Как записать больше информации в format MySQL -
Bren - 03.04.2017
Quote:
Originally Posted by OKStyle
Несколько запросов?
|
PHP Code:
format(str, sizeof(str), "INSERT INTO `profile` (`name`, `password`, `password2`, `salt`, `ipreg`, `iplocal`, `datetime`, `admin`, `admintime`, `vip`, `viptime`, `muted`, `prison`, `freeze`, `level[0]`, `level[1]`, `deaths`, `kills`, `money`, `timegame[0]`, `timegame[1]`, `timegame[2]`, `timegame[3]`, `spawnkill[0]`, `spawnkill[1]`, `spawnprav`, `visits`, `yourskin[0]`, `yourskin[1]`) VALUES ('%s', '%s', '0', '%s', '%s', '%s', '%s', '0', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '30000', '350', '0', '0', '0', '5', '0', '3', '0', '1', '0')", PlayerName[playerid], inputtext, PlayerInfo[playerid][pSalt], PlayerIp[playerid], PlayerIp[playerid], slot)
mysql_tquery(MysqlConnectID, str, "OnPlayerRegister", "d", playerid);
Re: Как записать больше информации в format MySQL -
DartfoL - 03.04.2017
ну вы и извращенцы
PHP Code:
new query[1024];
strcat(query, "первая часть запроса");
strcat(query, "вторая часть запроса");
strcat(query, "больше запроса!!");
format(query, 1024, query, PlayerData[playerid][shit], heh, mda, lol);
mysql_tquery(MysqlConnectID, query, "OnPlayerRegister", "d", playerid);
Re: Как записать больше информации в format MySQL -
Romz - 04.04.2017
А еще можно использовать компилятор в котором исправлена ошибка "input line too long", то есть можно писать текст любой длинны.
Например этот:
https://github.com/vlakam/ruspawncc
Re: Как записать больше информации в format MySQL -
ZiGGi - 04.04.2017
Quote:
Originally Posted by Kolstin
А еще можно использовать компилятор в котором исправлена ошибка "input line too long", то есть можно писать текст любой длинны.
Например этот: https://github.com/vlakam/ruspawncc
|
Лучше использовать компилятор от Zeex, там больше возможностей, а этот уже давно заброшен.
Re: Как записать больше информации в format MySQL -
][Noname][ - 04.04.2017
ну ещё можно компилятор который в 20 раз быстрей
Re: Как записать больше информации в format MySQL -
OKStyle - 04.04.2017
А ещё можно нормально писать код, чтобы не приходилось менять компиляторы.
Re: Как записать больше информации в format MySQL -
Mcc - 04.04.2017
Quote:
Originally Posted by SPAWN_METAL
ну ещё можно компилятор который в 20 раз быстрей
|
хватит уже рекламировать свой говно-компилятор
Re: Как записать больше информации в format MySQL -
Bren - 05.04.2017
Quote:
Originally Posted by OKStyle
А ещё можно нормально писать код, чтобы не приходилось менять компиляторы.
|
Куда ещё лучше
PHP Code:
new string[2316], date[6], slot[25];
strcat(string, "INSERT INTO `profile` (`name`, `password`, `password2`, `salt`, `ipreg`, `iplocal`, `datetime`, `admin`, `admintime`, `vip`, `viptime`, `muted`, `prison`, `freeze`, `level[0]`, `level[1]`, `deaths`, `kills`, `money`, `timegame[0]`, `timegame[1]`, `timegame[2]`, `timegame[3]`, `spawnkill[0]`, `spawnkill[1]`, `spawnprav`, `visits`, `yourskin[0]`, `yourskin[1]`, `nickcolor`, `time`, `weather`, `free`");
strcat(string, ", `cheatertime`, `floodcmd`, `menutype[0]`, `menutype[1]`, `menutype[2]`, `menutype[3]`, `hisweapons[0]`, `hisweapons[1]`, `hisweapons[2]`, `message[0]`, `message[1]`, `message[2]`, `message[3]`, `message[4]`, `message[5]`, `passive`, `duel[0]`, `duel[1]`, `duel[2]`, `duel[3]`, `russifier[0]`, `russifier[1]`, `infotext[0]`, `infotext[1]`, `infotext[2]`, `infotext[3]`, `infotext[4]`, `infotext[5]`, `infotext[6]`, `infotext[7]`");
strcat(string, ", `bonus[0]`, `bonus[1]`, `bonus[2]`, `bonus[3]`, `bonus[4]`, `bonus[5]`, `bonus[6]`, `bonus[7]`, `bonus[8]`, `bonus[9]`, `bonus[10]`, `bonus[11]`, `serverhelp[0]`, `serverhelp[1]`, `gang[0]`, `gang[1]`, `gang[2]`, `gang[3]`, `gang[4]`, `gang[5]`, `donat[0]`, `donat[1]`, `attendance`, `autobuyweapon[0]`, `autobuyweapon[1]`, `autobuyweapon[2]`, `autobuyweapon[3]`, `autobuyweapon[4]`");
strcat(string, ", `classweapons[0]`, `classweapons[1]`, `classweapons[2]`, `classweapons[3]`, `classweapons[4]`, `classweapons[5]`, `skillsweapons[0]`, `skillsweapons[1]`, `skillsweapons[2]`, `skillsweapons[3]`, `skillsweapons[4]`, `skillsweapons[5]`, `skillsweapons[6]`, `skillsweapons[7]`, `skillsweapons[8]`, `skillsweapons[9]`, `skillsweapons[10]`, `skillsweapons[11]`, `skillsweapons[12]`, `skillsweapons[13]`)");
strcat(string, " VALUES ('%s', '%s', '0', '%s', '%s', '%s', '%s', '0', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '30000', '350', '0', '0', '0', '5', '0', '3', '0', '1', '0', '-1', '9', '13', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '1', '0', '1', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'");
strcat(string, ", '47', '47', '47', '47', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0')");
format(string, sizeof(string), string, PlayerName[playerid], inputtext, PlayerInfo[playerid][pSalt], PlayerIp[playerid], PlayerIp[playerid], slot);
mysql_tquery(MysqlConnectID, string, "OnPlayerRegister", "d", playerid);
Re: Как записать больше информации в format MySQL -
stabker - 05.04.2017
Quote:
Originally Posted by Bren
Куда ещё лучше
PHP Code:
new string[2316], date[6], slot[25];
strcat(string, "INSERT INTO `profile` (`name`, `password`, `password2`, `salt`, `ipreg`, `iplocal`, `datetime`, `admin`, `admintime`, `vip`, `viptime`, `muted`, `prison`, `freeze`, `level[0]`, `level[1]`, `deaths`, `kills`, `money`, `timegame[0]`, `timegame[1]`, `timegame[2]`, `timegame[3]`, `spawnkill[0]`, `spawnkill[1]`, `spawnprav`, `visits`, `yourskin[0]`, `yourskin[1]`, `nickcolor`, `time`, `weather`, `free`");
strcat(string, ", `cheatertime`, `floodcmd`, `menutype[0]`, `menutype[1]`, `menutype[2]`, `menutype[3]`, `hisweapons[0]`, `hisweapons[1]`, `hisweapons[2]`, `message[0]`, `message[1]`, `message[2]`, `message[3]`, `message[4]`, `message[5]`, `passive`, `duel[0]`, `duel[1]`, `duel[2]`, `duel[3]`, `russifier[0]`, `russifier[1]`, `infotext[0]`, `infotext[1]`, `infotext[2]`, `infotext[3]`, `infotext[4]`, `infotext[5]`, `infotext[6]`, `infotext[7]`");
strcat(string, ", `bonus[0]`, `bonus[1]`, `bonus[2]`, `bonus[3]`, `bonus[4]`, `bonus[5]`, `bonus[6]`, `bonus[7]`, `bonus[8]`, `bonus[9]`, `bonus[10]`, `bonus[11]`, `serverhelp[0]`, `serverhelp[1]`, `gang[0]`, `gang[1]`, `gang[2]`, `gang[3]`, `gang[4]`, `gang[5]`, `donat[0]`, `donat[1]`, `attendance`, `autobuyweapon[0]`, `autobuyweapon[1]`, `autobuyweapon[2]`, `autobuyweapon[3]`, `autobuyweapon[4]`");
strcat(string, ", `classweapons[0]`, `classweapons[1]`, `classweapons[2]`, `classweapons[3]`, `classweapons[4]`, `classweapons[5]`, `skillsweapons[0]`, `skillsweapons[1]`, `skillsweapons[2]`, `skillsweapons[3]`, `skillsweapons[4]`, `skillsweapons[5]`, `skillsweapons[6]`, `skillsweapons[7]`, `skillsweapons[8]`, `skillsweapons[9]`, `skillsweapons[10]`, `skillsweapons[11]`, `skillsweapons[12]`, `skillsweapons[13]`)");
strcat(string, " VALUES ('%s', '%s', '0', '%s', '%s', '%s', '%s', '0', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '30000', '350', '0', '0', '0', '5', '0', '3', '0', '1', '0', '-1', '9', '13', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '1', '0', '1', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'");
strcat(string, ", '47', '47', '47', '47', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0')");
format(string, sizeof(string), string, PlayerName[playerid], inputtext, PlayerInfo[playerid][pSalt], PlayerIp[playerid], PlayerIp[playerid], slot);
mysql_tquery(MysqlConnectID, string, "OnPlayerRegister", "d", playerid);
|
К примеру, убрать пробелы и лишние кавычки
Re: Как записать больше информации в format MySQL -
Stepashka - 05.04.2017
Это же надо было додуматься в именах полей использовать скобки

Зачем передавать статичные данные?
Ой, я только что сократил твой запрос раз в 20:
Code:
INSERT INTO profile (name,password,salt,ipreg,iplocal,`datetime`) VALUES ('%s','%s','%s','%s','%s','%s');
А все твои значения по умолчанию тебе нужно прописать в полях БД.
Re: Как записать больше информации в format MySQL -
Bren - 05.04.2017
Quote:
Originally Posted by Stepashka
Это же надо было додуматься в именах полей использовать скобки 
Зачем передавать статичные данные?
Ой, я только что сократил твой запрос раз в 20:
Code:
INSERT INTO profile (name,password,salt,ipreg,iplocal,`datetime`) VALUES ('%s','%s','%s','%s','%s','%s');
А все твои значения по умолчанию тебе нужно прописать в полях БД.
|
Ой я дурак..
Это я не усмотрел что есть значение "По умолчанию"
Только вот при сохранении придется сохранять полностью все значения или сохранять их во время изменений
Re: Как записать больше информации в format MySQL -
Stepashka - 05.04.2017
Quote:
Originally Posted by Bren
сохранять их во время изменений
|
Люди делают так с древних времён, мы рады что вы наконец-то добрались да нашего времени))
Re: Как записать больше информации в format MySQL -
ZiGGi - 05.04.2017
Quote:
Originally Posted by Bren
Ой я дурак..
Это я не усмотрел что есть значение "По умолчанию"
Только вот при сохранении придется сохранять полностью все значения или сохранять их во время изменений
|
Для этого в плагине MySQL есть ORM, и никаких безумно длинных запросов не будет.
Re: Как записать больше информации в format MySQL -
Eims - 11.04.2017
Quote:
Originally Posted by OKStyle
А ещё можно нормально писать код, чтобы не приходилось менять компиляторы.
|
Менять компилятор стоит не только по причине увеличения лимита символов в строке
(там и других багфиксов, а так же приятных нововведений хватает).
Но даже это увеличение даёт лишь плюсы: избавляет от нужды писать костыли в виде вызова функций для скрепления строк
(даже если шаманить с массивами, убирая нуль-символы - всё равно лишняя головная боль скриптеру и лишние действия для сервера), что позволяет и серверные тики сэкономить, и скриптера избавит от написания лишнего кода.
Так что про "нормально писать код" - это, скорее, вариант с исправленным компилятором, увы.