Как записать больше информации в format MySQL
#1

Не хватает format для записи профиля в базу.
Вылезает ошибка при превышении format[] в
PHP Code:
format format(output[], len, const format[], {Float,_}:...); 
Не подскажите как будет лучше записать ?

Может так?
PHP Code:
format(strsizeof(str), "INSERT INTO `profile` (`name`) VALUES ('%s')");
strcat(stringgstr); 
Reply
#2

непонятен вопрос
Reply
#3

Есть строка format форматирование, в ней 551 символа.
При компиляции вылезает ошибка: error 075: input line too long (after substitutions) - слишком длинная строка.

Данная строка хранит записи данных об аккаунте которые будут отправлены в базу данных.
PHP Code:
Пример:  INSERT INTO `profile` (`name`) VALUES ('%s'
Ну и вот как уместить все данные в строку
Объединять их с помощью strcat, или возможно сделать по-другому?
Reply
#4

Несколько запросов?
Reply
#5

используй другой компилятор
Reply
#6

http://forum.sa-mp.com/showpost.php?...20&postcount=4 (лучше первый вариант)
Reply
#7

Quote:
Originally Posted by OKStyle
View Post
Несколько запросов?
PHP Code:
format(strsizeof(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], inputtextPlayerInfo[playerid][pSalt], PlayerIp[playerid], PlayerIp[playerid], slot)
mysql_tquery(MysqlConnectIDstr"OnPlayerRegister""d"playerid); 
Reply
#8

ну вы и извращенцы
PHP Code:
new query[1024];
strcat(query"первая часть запроса");
strcat(query"вторая часть запроса");
strcat(query"больше запроса!!");
format(query1024queryPlayerData[playerid][shit], hehmdalol);
mysql_tquery(MysqlConnectIDquery"OnPlayerRegister""d"playerid); 
Reply
#9

А еще можно использовать компилятор в котором исправлена ошибка "input line too long", то есть можно писать текст любой длинны.
Например этот: https://github.com/vlakam/ruspawncc
Reply
#10

Quote:
Originally Posted by Kolstin
View Post
А еще можно использовать компилятор в котором исправлена ошибка "input line too long", то есть можно писать текст любой длинны.
Например этот: https://github.com/vlakam/ruspawncc
Лучше использовать компилятор от Zeex, там больше возможностей, а этот уже давно заброшен.
Reply
#11

ну ещё можно компилятор который в 20 раз быстрей
Reply
#12

А ещё можно нормально писать код, чтобы не приходилось менять компиляторы.
Reply
#13

Quote:
Originally Posted by SPAWN_METAL
View Post
ну ещё можно компилятор который в 20 раз быстрей
хватит уже рекламировать свой говно-компилятор
Reply
#14

Quote:
Originally Posted by OKStyle
View Post
А ещё можно нормально писать код, чтобы не приходилось менять компиляторы.
Куда ещё лучше
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(stringsizeof(string), stringPlayerName[playerid], inputtextPlayerInfo[playerid][pSalt], PlayerIp[playerid], PlayerIp[playerid], slot);
mysql_tquery(MysqlConnectIDstring"OnPlayerRegister""d"playerid); 
Reply
#15

Quote:
Originally Posted by Bren
View Post
Куда ещё лучше
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(stringsizeof(string), stringPlayerName[playerid], inputtextPlayerInfo[playerid][pSalt], PlayerIp[playerid], PlayerIp[playerid], slot);
mysql_tquery(MysqlConnectIDstring"OnPlayerRegister""d"playerid); 
К примеру, убрать пробелы и лишние кавычки
Reply
#16

Это же надо было додуматься в именах полей использовать скобки
Зачем передавать статичные данные?

Ой, я только что сократил твой запрос раз в 20:
Code:
INSERT INTO profile (name,password,salt,ipreg,iplocal,`datetime`) VALUES ('%s','%s','%s','%s','%s','%s');
А все твои значения по умолчанию тебе нужно прописать в полях БД.
Reply
#17

Quote:
Originally Posted by Stepashka
View Post
Это же надо было додуматься в именах полей использовать скобки
Зачем передавать статичные данные?

Ой, я только что сократил твой запрос раз в 20:
Code:
INSERT INTO profile (name,password,salt,ipreg,iplocal,`datetime`) VALUES ('%s','%s','%s','%s','%s','%s');
А все твои значения по умолчанию тебе нужно прописать в полях БД.
Ой я дурак..
Это я не усмотрел что есть значение "По умолчанию"
Только вот при сохранении придется сохранять полностью все значения или сохранять их во время изменений
Reply
#18

Quote:
Originally Posted by Bren
View Post
сохранять их во время изменений
Люди делают так с древних времён, мы рады что вы наконец-то добрались да нашего времени))
Reply
#19

Quote:
Originally Posted by Bren
View Post
Ой я дурак..
Это я не усмотрел что есть значение "По умолчанию"
Только вот при сохранении придется сохранять полностью все значения или сохранять их во время изменений
Для этого в плагине MySQL есть ORM, и никаких безумно длинных запросов не будет.
Reply
#20

Quote:
Originally Posted by OKStyle
View Post
А ещё можно нормально писать код, чтобы не приходилось менять компиляторы.
Менять компилятор стоит не только по причине увеличения лимита символов в строке (там и других багфиксов, а так же приятных нововведений хватает).
Но даже это увеличение даёт лишь плюсы: избавляет от нужды писать костыли в виде вызова функций для скрепления строк (даже если шаманить с массивами, убирая нуль-символы - всё равно лишняя головная боль скриптеру и лишние действия для сервера), что позволяет и серверные тики сэкономить, и скриптера избавит от написания лишнего кода.
Так что про "нормально писать код" - это, скорее, вариант с исправленным компилятором, увы.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)