Клановая система

Клановая система 1.91

dyoma

Участник
Сообщения
175
Реакции
21
Попробуйте убрать unicode и поставить utf8mb4_general_ci
не помогло
L 11/03/2021 - 11:17:05: [clans_core.smx] [CLANS] Query Fail with client (code #3, update name): Incorrect string value: '\xF0\x9F\x92\x99 G...' for column `cs_clans`.`players_table`.`player_name` at row 25
 

DreaM

Участник
Сообщения
406
Реакции
219
не помогло
L 11/03/2021 - 11:17:05: [clans_core.smx] [CLANS] Query Fail with client (code #3, update name): Incorrect string value: '\xF0\x9F\x92\x99 G...' for column `cs_clans`.`players_table`.`player_name` at row 25
хм... Запишу себе эту проблемку, спасибо
 

MoOvik

ABKAMHOL"..."
Сообщения
193
Реакции
26

DreaM

Участник
Сообщения
406
Реакции
219
Может, что-то я не правильно сделал, можно связаться с вами в дискорде
Сообщения автоматически склеены:


У моего друга работает нормально
да, меня можно найти на сервере Discord, ссылка на который есть на ресурсе)
Или вот аккаунт: DreaM#4542
 

dyoma

Участник
Сообщения
175
Реакции
21
Привет, поправь SQL, нужно экранировать знак "'" в нике.
Na'vi f0rest
L 11/15/2021 - 21:24:35: [clans_core.smx] [CLANS] Query Fail with client (code #3, update name): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'vi f0rest' WHERE `player_steam` = '[U:1:1211287036]'' at line 1
 

DreaM

Участник
Сообщения
406
Реакции
219
Привет, поправь SQL, нужно экранировать знак "'" в нике.
Na'vi f0rest
L 11/15/2021 - 21:24:35: [clans_core.smx] [CLANS] Query Fail with client (code #3, update name): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'vi f0rest' WHERE `player_steam` = '[U:1:1211287036]'' at line 1
Привет, да вроде, должно :)

1636992858246.png
 

dyoma

Участник
Сообщения
175
Реакции
21

DreaM

Участник
Сообщения
406
Реакции
219
void DB_LoadClientCallback(Handle owner, Handle hndl, const char[] error, int client)

FormatEx(query, sizeof(query), "UPDATE `players_table` SET `player_name` = '%s' WHERE `player_steam` = '%s';", userName, g_sClientData[client][CLIENT_STEAMID]);
екарный бабай, так вот где собака зарыта, а я искал-искал. Спасибо большое :)
 

dyoma

Участник
Сообщения
175
Реакции
21
Привет, у меня вопрос, если в функцию передается параметр, он разве меняет параметр локальной переменной, в месте где он был вызван?
Есть функция NameToDB, в которую передается буфер, но функция ничего не возвращает и не меняет глобальных переменных. Т.е по сути выходя из функции, первоначальная переменная остается не изменной.
Т.е. по сути эта функция ничего не меняет =)))

void NameToDB(char[] buff, int len)
{
ReplaceString(buff, len, "'", "\\'");
ReplaceString(buff, len, "\\", "\\\\");
ReplaceString(buff, len, "`", "\\`");
ReplaceString(buff, len, "\"", "\\\"");
}

NameToDB(userName, sizeof(userName));

=) Если так, то это не работает нигде. Хотя я могу и ошибаться.
я это всё к тому, что сегодня снова
L 11/16/2021 - 14:07:08: [clans_core.smx] [CLANS] Query Fail with client (code #3, update name): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'vif0rest' WHERE `player_steam` = '[U:1:1211287036]'' at line 1
 

DreaM

Участник
Сообщения
406
Реакции
219
Привет, у меня вопрос, если в функцию передается параметр, он разве меняет параметр локальной переменной, в месте где он был вызван?
Есть функция NameToDB, в которую передается буфер, но функция ничего не возвращает и не меняет глобальных переменных. Т.е по сути выходя из функции, первоначальная переменная остается не изменной.
Т.е. по сути эта функция ничего не меняет =)))

void NameToDB(char[] buff, int len)
{
ReplaceString(buff, len, "'", "\\'");
ReplaceString(buff, len, "\\", "\\\\");
ReplaceString(buff, len, "`", "\\`");
ReplaceString(buff, len, "\"", "\\\"");
}

NameToDB(userName, sizeof(userName));

=) Если так, то это не работает нигде. Хотя я могу и ошибаться.
я это всё к тому, что сегодня снова
L 11/16/2021 - 14:07:08: [clans_core.smx] [CLANS] Query Fail with client (code #3, update name): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'vif0rest' WHERE `player_steam` = '[U:1:1211287036]'' at line 1
Не, просто я сегодня ночью, когда делал другую штуку, обнаружил, что он как бы делает все верно, но я накосячил с порядком замен :)
Строчные изменения происходят 100%, это не локальная переменная :)
1637065105916.png

Вот так должно быть :)
1637065239968.png

Сейчас обновлю
 

DreaM

Участник
Сообщения
406
Реакции
219

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
Какой-то странный костыль в этом посте увидел. Есть SQL_EscapeString или Database.Escape, которые учитывают гораздо больше случаев за счёт того, что оно обращается в драйвер, а тот уже смотрит на конфигурацию сервера и отталкивается от этого. Зачем изобретать велосипед?
 

DreaM

Участник
Сообщения
406
Реакции
219
Какой-то странный костыль в этом посте увидел. Есть SQL_EscapeString или Database.Escape, которые учитывают гораздо больше случаев за счёт того, что оно обращается в драйвер, а тот уже смотрит на конфигурацию сервера и отталкивается от этого. Зачем изобретать велосипед?
вопрос хороший..) Изначально как пошел этот костыль, так его все никак и не убирал, не знаю почему. Сейчас поправим :)
 

Похожие темы

Сверху Снизу