Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: [MySQL R41-4] Система подключения БД на MySQL. - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ All ]
[MySQL R41-4] Система подключения БД на MySQL. Часто замечаю что люди просто не умеют подключать БД.
Оценка: -----

#1
Пользователь офлайн   devicee? 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Привет всем, часто замечаю на любых форумах по Pawn, что начинающие скриптеры не могут подключить базу данных MySQL к своему моду.
Для подключения БД вам понадобятся программы:
Denwer (для использования локальной бд)
MySQL R41-4 (plugin + include)
И ваш сервер (предусматривается подключение с 0)
Для начала нужно создать переменную типа MySQL, для подключения, я её называю всегда dbHandle (мне так удобнее называть, можете придумать своё название)
Переменную мы создаём в будущем для использования MySQL, чтобы не писать постоянно строку mysql_connect(параметры)
new MySQL:dbHandle;

Теперь создадим дефайны подключения к БД.
Их я делаю для того чтобы не искать функцию, а изменить в самом начале мода сразу.
Ко всем дефайнам:
//если на локалке
#define MYSQL_HOST "localhost"
#define MYSQL_USER "root"
#define MYSQL_PASS ""
#define MYSQL_BASE "название вашей базы данных в MySQL"
//если вы используете хостинг, то вам необходимо взять хост, юзера, пароль оттуда, а название базы вы придумаете там сами


После того как мы создали дефайны где написали данные от MySQL, нам необходимо сделать сток подключения MySQL, а также его логов.
Там где у вас все стоки:
stock ConnectMySQL()
{    
    dbHandle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_BASE);//присваеваем dbHandle функцию.
    switch(mysql_errno())
    {
        case 0: print("MySQL успешно подключён.");//если бд подключена - mysql возвращает 0, и пишем что бд подключена
        default: print("MySQL не подключился. Проверьте базу данных!"); //если возвращает что-то кроме 0, пишет данное сообщение в консоль
        /*если какие-то ошибки есть, mysql возвращает код ошибки, если вам удобнее, можете сделать так чтобы возвращал код ошибки
        case 1044: print("Подключение к базе данных не удалось [Указано неизвестное имя пользователя]");
        case 1045: print("Подключение к базе данных не удалось [Указан неизвестный пароль]");
        case 1049: print("Подключение к базе данных не удалось [Указана неизвестная база данных]");
        case 2003: print("Подключение к базе данных не удалось [Доступ к базе данных отклонён (проблемы с хостингом)]");
        case 2005: print("Подключение к базе данных не удалось [Указан неизвестный адрес]");
        default: printf("Подключение к базе данных не удалось [Неизвестная ошибка. Код ошибки: %d]", mysql_errno());*/
    }
    mysql_log(ALL); //я поставил чтобы функция логировала каждое действие, если вам не интересно, можете сделать mysql_log(ERROR | WARNING); для логирования только ошибок и варнингов
    mysql_set_charset("cp1251");//ставим кодировку cp1251, она лучше всего работает с русс. языком.
}

Теперь нам только осталось подключить MySQL к базе данных при включении мода.
В public OnGameModeInit
ConnectMySQL();

Моё первое готовое решение, до этого вылаживал только небольшую команду.
0

#2
Пользователь офлайн   #Maza 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Тебе если хочется плюсиков, выложи что-то актуальное. Таких манулов очень много.

Можно ещё и так:
printf("-> Подключение к базе данных прошло %s", (mysql_errno(MConnected) ? ("-с ошибкой-"):("-успешно-")));

0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика