Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Непонятная ошибка
Непонятная ошибка
Entity Дата: Понедельник, 05.03.2018, 15:14:29 | Сообщение # 1
Сообщений: 67
Репутация: 1 [ +/- ]
Доброго времени суток, друзья. Столкнулся с непонятной ошибкой, надеюсь на вашу помощь.

Мой код:
Код

CreateClient(client)
{
   decl String:auth[32], String:name[128], String:query[256];
   GetClientName(client, auth, sizeof(auth));
   SQL_EscapeString(g_hDataBase, auth, name, sizeof(name));
   GetClientAuthId(client, AuthId_Steam2, auth, sizeof(auth));
   FormatEx(query, sizeof(query), "INSERT INTO `mute` (\
                    `uname`,\
                    `usteam`,\
                    `vtime`,\
                    `ctime`,\
                    `vreason`,\
                    `creason`,\
                    `vaname`,\
                    `caname`,\
                    `vasteam`,\
                    `casteam`) VALUES ('%s', '%s', '%i', '%i', '%i', '%i', '%s', '%s', '%s', '%s');",
   name, auth, g_iVoiceTime[client], g_iChatTime[client], g_iVoiceReason[client], g_iChatReason[client], g_sVoiceAdminName[client], g_sChatAdminName[client], g_sVoiceAdminSteam[client], g_sChatAdminSteam[client]);

    SQL_TQuery(g_hDataBase, SQL_CreateClientCallback, query, GetClientUserId(client));
}

public SQL_CreateClientCallback(Handle:owner, Handle:hndl, const String:error[], any:userid)
{
   if (error[0])
   {
       LogError("Fail create client: %s", error);
       return;
   }

   new client = GetClientOfUserId(userid);

   if (client > 0)
   {
      g_iId[client] = SQL_GetInsertId(hndl);
   }
}



Ошибка: Fail create client: near ",": syntax error


Сообщение отредактировал Entity - Понедельник, 05.03.2018, 15:18:46
 
_wS_ Дата: Понедельник, 05.03.2018, 22:50:53 | Сообщение # 2
Thanks
Всё время выдаёт или иногда?
Если иногда, то может из-за символов в нике? (догадка).
Я ник так получаю:

Код
stock SqlProtectString(String:s[])
{
   new x = strlen(s);
   for (new i = 0; i < x; i++)
   {
      if (s[i] == '\\' || s[i] == '"' || s[i] == '\'')
         s[i] = '_';
   }
   return TrimString(s);
}

stock SqlGetClientName(client, String:name[], maxlength)
{
   if (!GetClientName(client, name, maxlength) || SqlProtectString(name) < 1)
      strcopy(name, maxlength, "-");
}


Еще можно делать не INSERT INTO, а INSERT IGNORE INTO (mysql), INSERT OR IGNORE INTO (sqlite).
Т.к. если сделать просто INSERT INTO и запись уже есть, то вернёт ошибку, не помню какую.

Если у тебя тип поля int, то пробуй и вставлять значение как int, не оборачивая в 'кавычки'.
Ещё в лог выведи весь запрос, может 256 мало.

Погуглил эту ошибку, чтот ничего полезного не нашлось + у меня такой ошибки не было вроде никогда.
В самом запросе всё ровно, хотя попробуй убрать ; в конце.
Может проблема не тут, а там где таблица создаётся.

Но это всё догадки, в голову пока больше ничего не пришло pardon
 
Entity Дата: Вторник, 13.03.2018, 18:08:34 | Сообщение # 3
Сообщений: 67
Репутация: 1 [ +/- ]
_wS_, ошибка иногда возникает. Спасибо за советы, буду разбираться klas

Добавлено (13.03.2018, 18:08:34)
---------------------------------------------
Не буду создавать отдельную тему, спрошу тут же. Ситуация следующая. Приличное кол-во плагинов привязаны к одной БД, но таблицы разные. То есть, у каждого плагина своя таблица. Будет ли разница, если каждую таблицу подключать к отдельной БД? А именно, интересует разница в скорости получения ответа из БД.


Сообщение отредактировал Entity - Вторник, 13.03.2018, 19:38:27
 
_wS_ Дата: Вторник, 13.03.2018, 18:41:11 | Сообщение # 4
Thanks
Цитата Entity ()
Будет ли разница, если каждую таблицу подключить к отдельной БД?

http://qaru.site/questions/5577/mysql-many-tables-or-many-databases
 
Entity Дата: Вторник, 13.03.2018, 19:37:24 | Сообщение # 5
Сообщений: 67
Репутация: 1 [ +/- ]
_wS_, спасибо.

P.S. Прочитал приличное количество статей. Вкратце скажу, что существенной разницы не будет. Но, всё-таки, большая аудитория людей рекомендуют использовать одну БД под многие таблицы.
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Непонятная ошибка
  • Страница 1 из 1
  • 1
Поиск: