Непонятная ошибка
| |
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 |
|
Всё время выдаёт или иногда? Если иногда, то может из-за символов в нике? (догадка). Я ник так получаю:
Код 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 мало.
Погуглил эту ошибку, чтот ничего полезного не нашлось + у меня такой ошибки не было вроде никогда. В самом запросе всё ровно, хотя попробуй убрать ; в конце. Может проблема не тут, а там где таблица создаётся.
Но это всё догадки, в голову пока больше ничего не пришло
|
|
| |
Entity
|
Дата: Вторник, 13.03.2018, 18:08:34 | Сообщение # 3 |
|
Сообщений: 67
Репутация: 1 [ +/- ]
|
|
_wS_, ошибка иногда возникает. Спасибо за советы, буду разбираться
Добавлено (13.03.2018, 18:08:34) --------------------------------------------- Не буду создавать отдельную тему, спрошу тут же. Ситуация следующая. Приличное кол-во плагинов привязаны к одной БД, но таблицы разные. То есть, у каждого плагина своя таблица. Будет ли разница, если каждую таблицу подключать к отдельной БД? А именно, интересует разница в скорости получения ответа из БД.
Сообщение отредактировал Entity - Вторник, 13.03.2018, 19:38:27 |
|
| |
_wS_
|
Дата: Вторник, 13.03.2018, 18:41:11 | Сообщение # 4 |
|
|
|
| |
Entity
|
Дата: Вторник, 13.03.2018, 19:37:24 | Сообщение # 5 |
|
Сообщений: 67
Репутация: 1 [ +/- ]
|
|
_wS_, спасибо.
P.S. Прочитал приличное количество статей. Вкратце скажу, что существенной разницы не будет. Но, всё-таки, большая аудитория людей рекомендуют использовать одну БД под многие таблицы.
|
|
| |
|