Antoxa39

Подключение к базе данных

В теме 3 сообщения

Здарова бандиты. ОПГ Павновское.

Вообщем, в этом уроке я расскажу и покажу как подключить Базу Данных к MySQL.

Не регистрацию,и не в готовом моде где просто пользователя пароль хост и т.д меняете.

А подключение с нуля.

 

1.Нам понадобится MySQL.  Я использую R39-6. Скачать 

2.Приступаем к подготовительному этапу.

Заходим в Pawn и подключаем MySQL чуть ниже инклюда a_samp. #include <a_mysql>

Должно быть так.

После этого отчищаем мод от хлама. Должно получится вот так: жмЫкс

3.Подключение

Дальше нам требуется создать переменную,эта переменная будет хранить ИД подключения. в MySQL R39 создаем простую переменную.

new dbHandle; 

В MySQL R41 создаем так:

 new MySQL:dbHandle;

 

теперь создаем Константы

#define Host "127.0.0.1"
#define User "root" // это если вы используете Denwer. Если хостинг указываете другого пользователя.
#define DataBase "urok"
#define Password_SQL ""//Если вы на хостинге ставите пароль,для Denwer пароль не требуется, чуть позже скажу как его установить

Все, теперь переходим в public OnGameModeInit()

public OnGameModeInit()
{
    dbHandle = mysql_connect(Host,User,DataBase,Password_SQL); // приравниваем нашу переменную с ИД подключением к коннекту к базе данных. Извиняюсь если коряво обьяснил. Это для R39
    return 1;
}

Для R41

public OnGameModeInit()
{
    dbHandle = mysql_connect(Host,User,Password_SQL,DataBase);// В R41 поменялись местами Пароль и База
    return 1;
}

Если сделаем чтобы при подключении к базе выводилось сообщение о том,подключилось или нет. Я сделаю это без switch. Чтобы сильно не загружать смотрящих этот урок.

Делаем все там же в public OnGameModeInit()

public OnGameModeInit()
{
    dbHandle = mysql_connect(Host,User,DataBase,Password_SQL);
    if(mysql_errno())
    {
        printf("Подключение к базе данных %s не удалось.",DataBase); // %s означает строку. То есть будет выводить название базы данных которое указано в #define DataBase
    }
    else
    {
        printf("Подключение к базе данных %s успешно",DataBase);
    }
    return 1;
}

Все, с этим закончили. Остался последний этап, это отключение базы данных когда мод выключается.

Идем в паблик OnGameModeExit()

public OnGameModeExit()
{
    mysql_close(dbHandle);
    return 1;
}

Все. База данных подключена.

Чтобы скачать Denwer жмите сюды: плямп

Для установки можете перейти по этой ссылке: УСТАНОВКА

Отредактировано пользователем Antoxa39

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Благодарю! 👍

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@PTGS Большое спасибо💖 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • gooding
      От gooding


      Скачать файл PAR RP | Доработанный мод Cruela RP | Без багов
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
      Основа данного мода: Cruela RP
       
       

      Добавил gooding Добавлено 20.11.2024 Категория Моды Автор GOODING (Я)  
    • gooding
      От gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
      Основа данного мода: Cruela RP
       
       

    • Max Luilchack
      От Max Luilchack
      Нужен человек который сможет сделать примерную карту Украины для сервера crmp mobile. Если есть желающие пишите в дс: lamarlml
    • Yashich
      От Yashich
      Возникла проблема, не работает команда /giverank Что здесь может работать не так? Заранее спасибо за ответ)
      Вот строки кода связанные с этой командой (мод Аризона)
       
      CMD:giverank(playerid, params[]) {     if(PI[playerid][pMember]<=0)return 0;     if(PI[playerid][pRank] < 9 && PI[playerid][pLeader] == 0) return SCM(playerid, COLOR_RED, !"Отказано в доступе!");     if(sscanf(params,"ud",params[0],params[1])) return SCM(playerid, COLOR_RED, !"Используйте: /giverank [id] [rank]");     if(!ProxDetectorS(8.0, playerid, params[0])) return SCM(playerid, COLOR_GREY, !"Вы должны находиться рядом с игроком!");     if(PI[params[0]][pLeader] > 0 ) return SCM(playerid, COLOR_RED, !"Вы не можете изменять ранг лидеру");     if(params[1] < 1) return SCM(playerid, COLOR_GREY, !"Нельзя повысить до этого ранга");     if(Clother[params[0]]!=-1)return 0;     if(GetPlayerVirtualWorld(playerid)!=GetPlayerVirtualWorld(params[0]))return 0;     if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, !"Игрок не найден");     if(PI[playerid][pRank] <= PI[params[0]][pRank]) return SCM(playerid, COLOR_GREY, !"Вы не можете повысить/понизить этого игрока");     if(PI[playerid][pRank] == 9 && params[1] > 8) return SCM(playerid, COLOR_RED, !"Нельзя выдать ранг больше 8");     if(params[1] > 9) return SCM(playerid, COLOR_GREY, !"Нельзя повысить до этого ранга");     if(PI[params[0]][pMember] != PI[playerid][pMember]) return SCM(playerid, COLOR_GREY, !"Игрок находиться в другой организации!");     str_1[0] = EOS;     f(str_1,100,"Лидер %s %s до %i ранга",PN(playerid),PI[params[0]][pRank] > params[1] ? ("понизил"):("повысил"),params[1]);     SCM(params[0],COLOR_LIGHTBLUE,str_1);     f(str_1,100,"Вы %sи игрока %s до %i ранга",PI[params[0]][pRank] > params[1] ? ("понизил"):("повысил"),PN(params[0]),params[1]);     SCM(playerid,COLOR_LIGHTBLUE,str_1);     PI[params[0]][pRank] = params[1];     UpdatePlayerDataInt(params[0], "Rank", params[1]);     if(PI[params[0]][pSex] == 2) if(TeamDuty{params[0]}) SetPlayerSkinEx(params[0],GOrgSkins[GetTeamID(params[0])][params[1]]), TogglePlayerControllable(params[0],true);     else if(TeamDuty{params[0]}) SetPlayerSkinEx(params[0],MOrgSkins[GetTeamID(params[0])][params[1]]), TogglePlayerControllable(params[0],true);     return 1; }