Antoxa39

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

3 posts in this topic

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

Вообщем, в этом уроке я расскажу и покажу как подключить Базу Данных к 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 жмите сюды: плямп

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

Edited by Antoxa39

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Dexter Nomad
      By Dexter Nomad
      При попытке компиляции кода возникает ошибка:
      error 076: syntax error in the expression, or invalid function call
      Не могу найти причину, буду благодарен, если не только укажете, где сама ошибка, но еще и исправите ее.
      Сам код:
          if(strcmp(cmd, "/carsharing", true) == 0)     {         if(IsPlayerConnected(playerid))         {             if(PlayerInfo[playerid][CarLic] == 0) return SCM(playerid, COLOR_RED, "У вас нет вод.прав! Вы можете получить их в автошколе!");         }     }  
    • Sanya_Greison
      By Sanya_Greison
      Куплю РП мод под сервер без бонуса. Бюджет до 150 $
      А также скриптера с Украины
      мой вк vk.com/i_am_sashko
    • Михаил Майоров
      By Михаил Майоров
      Т.к. я начинающий скриптер, хочу поделится для незнающих людей командами, которые написал сам. Да, они простые, но начинающие не всегда понимают.
      Понадобится плагин DC_cmd.
      CMD:sethp(playerid, params[]) {     //Далее тут проверка. Если нужна, могу залить.     static const MSG_USE_CMD[] = !"Введите /sethp [ID] [Кол-во HP]";     if(isnull(params))         return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;     new id, Float:health;     if(sscanf(params, "uf(0.0)", id, health))         return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;     else if(id == INVALID_PLAYER_ID)         return SendClientMessage(playerid, -1, !"Игрока с таким ID нет на сервере") & 0;     else if(!(0.0 <= health <= 150.0))         return SendClientMessage(playerid, -1, !"[Ошибка] Установите не менее 0 и не более 150!") & 0;     SetPlayerHealth(id, health);     return 1; } Это ещё не всё. Буду дополнять. Пока только 1 команда