Русское сообщество по скриптингу

ZP. Ошибка SQL: bad load

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

ZP. Ошибка SQL: bad load

Сообщение Максим_SerJanT » 02 авг 2021, 16:07

Здравствуйте. У меня возникла проблема, при подключении базы данных, которая сохраняет LVL систему: уровень и опыт. Сохраняю в plugins-zplague.ini, в консоли:
Код: Выделить всё
unknown            unknown     unknown           mysql_stats_lvl  bad load

Подскажите что не так.
Исходник:
Код: Выделить всё
#include <amxmodx>
#include <sqlx>

native zp_set_user_lvl(id, set)
native zp_set_user_exp(id, set)

native zp_get_user_lvl(id)
native zp_get_user_exp(id)

#define DB_HOST "" //хост
#define DB_USER "" //пользователь
#define DB_PASSWORD "" //пароль
#define DB_NAME "" //имя базы

new Handle:g_hDBHandle, Handle:g_hDBInfo

public plugin_init
() DBConnect()

public client_putinserver(id) load_sql(id)

public client_disconnect(id) UpdateDB(id)

public load_sql(id)
{
    new ID[32], NAME[32], IP[32]
    get_user_authid(id, ID, charsmax(ID));
    get_user_ip(id, IP, charsmax(IP));
    get_user_name(id, NAME, charsmax(NAME));
    
    replace
(NAME, 31, "'", "")
    
    new Handle
:hQuery = SQL_PrepareQuery(g_hDBHandle, "SELECT `L`, `E` FROM sql_save_lvl WHERE steamid = '%s'", ID);
        
    if 
(!SQL_Execute(hQuery)) 
    
{
        new Error[192];
        SQL_QueryError(hQuery, Error, charsmax(Error))
        set_fail_state(Error)
        SQL_FreeHandle(hQuery)
        return;
    }
        
    if 
(!SQL_NumResults(hQuery)) 
    
{
        natives_call(id)
        
        SQL_FreeHandle
(hQuery);
            
        new ip
[16];
        get_user_ip(id, ip, charsmax(ip), 1);
        hQuery = SQL_PrepareQuery(g_hDBHandle, "INSERT INTO `sql_save_lvl` (`name`, `steamid`, `ip`, `L`, `E` ) VALUES ('%s', '%s', '%s', '%d', '%d')", NAME, ID, IP, 1, 1)
        if (!SQL_Execute(hQuery)) 
        
{
            server_print("Error due registering user!");
        }
        SQL_FreeHandle(hQuery)
        
        return
;
    }
    
    natives_call
(id, SQL_ReadResult(hQuery, 0), SQL_ReadResult(hQuery, 1))
    SQL_FreeHandle(hQuery);
}

DBConnect()
{
    new Error[128], errno;
    g_hDBInfo = SQL_MakeDbTuple(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
    g_hDBHandle = SQL_Connect(g_hDBInfo, errno, Error, charsmax(Error));
    SQL_FreeHandle(g_hDBInfo)
    if (g_hDBHandle == Empty_Handle){
        set_fail_state(Error)
        return
    
}
    
    new Handle
:ResultT
    
    ResultT
=SQL_PrepareQuery(g_hDBHandle, "CREATE TABLE IF NOT EXISTS `sql_save_lvl` (`name` VARCHAR(35) NOT NULL default '',  `steamid` VARCHAR(25) NOT NULL default '', `ip` VARCHAR(20) NOT NULL default '', `L` INT(6) NOT NULL, `E` INT(6) NOT NULL)")
    
    if
(!SQL_Execute(ResultT)){
        SQL_QueryError(ResultT,Error,127)
        SQL_FreeHandle(ResultT)
        set_fail_state(Error)
        return
    
}
    SQL_FreeHandle(ResultT)
}

public plugin_end() 
{
    for (new id = 1; id <= 32; id++) 
    
{
        if(is_user_connected(id) && !is_user_bot(id))
        {
            UpdateDB(id)
        }
    }
    
    SQL_FreeHandle
(g_hDBHandle)
}

stock UpdateDB(id)
{
    
    new NAME
[32]
    get_user_authid(id, NAME, charsmax(NAME));
    
    replace
(NAME, 31, "'", "")
    
    new Handle
:hQuery = SQL_PrepareQuery(g_hDBHandle, "UPDATE `sql_save_lvl` SET `L`=%i, `E`=%i WHERE `steamid` = '%s'", zp_get_user_lvl(id), zp_get_user_exp(id), NAME)
    
    if 
(!SQL_Execute(hQuery))
    {
        new Error[192];
        SQL_QueryError(hQuery, Error, charsmax(Error));
    }
    SQL_FreeHandle(hQuery);
}

stock natives_call(id, L=1, E=0)
{
    zp_set_user_lvl(id, L)
    zp_set_user_exp(id, E)
}

 

(Данные от БД вписывал, если что).
Аватара пользователя
Максим_SerJanT
 
Сообщения: 75
Зарегистрирован: 16 авг 2017, 01:32
Благодарил (а): 7 раз.
Поблагодарили: 1 раз.

Re: ZP. Ошибка SQL: bad load

Сообщение Leonidddd » 03 авг 2021, 17:11

Максим_SerJanT, логи ошибок забыли прикрепить
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2557
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 192 раз.
Поблагодарили: 718 раз.


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13