This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Мануал Урок Подключаем и работаем с MySQL на сервере Rage MP

nettkom

Специалист
Автор темы
14 Сен 2020
58
42
82
Рано или поздно нам понадобится сохранять данные с каком-то постоянном хранилище, чтобы они были доступны даже после перезапуска сервера. Часто люди записывают нужные данные в простые текстовые файлы. Но если данных много, они разнообразные и их формат может меняться, то удобнее хранить их в базе данных.



Одной из самых популярных систем управления базами данных является MySQL. В этом уроке мы разберемся как мы можем работать с базой данных MySQL на сервере Rage MP.

Тестировать мы будет на своем компьютере и нам понадобится установить сервер MySQL и node js.
Я использую mysql сервер в комплекте программы Open Server. В этой же программе есть клиент phpMyAdmin с помощью которого можно работать с базой данных в браузере.



Node js мы скачаем и установим с официального сайта (LTS версия). При установке можно ничего не менять и оставлять все как есть по-умолчанию.
Для теста я создал базу данных rage-test и в ней простенькую таблицу accounts




Node js мы скачаем и установим с официального сайта (LTS версия). При установке можно ничего не менять и оставлять все как есть по-умолчанию.

Для теста я создал базу данных rage-test и в ней простенькую таблицу accounts
Код:
npm install mysql


После установки пакета mysql мы можем использовать его в своих скриптах! Ниже приведу пример подключения к базе данных

Код:
var mysql = require('mysql'); // подключаем библиотеку к скрипту

var connection = mysql.createConnection({ // настройки подключения к базе данных
    host     : 'localhost',
    user     : 'mysql',
    password : 'mysql',
    database : 'rage-test'
});

connection.connect(function(err) { // подключаемся
    if (err) { // в случае ошибки в err будет объект ошибки
        console.error('Ошибка подключения: ' + err.stack);
        return;
    }

    console.log('Успешное подключение к базе данных ');
});

Если мы смогли успешно подключиться к базе данных, то теперь можем выполнить наш первый запрос

Код:
connection.query('SELECT * FROM accounts', function (error, results) {
    console.log(results);
});


Если нам нужно подставить в запрос какое-то значение (например, логин который ввел пользователь), то подставляем их сразу с экранирование таким способом:



Код:
connection.query('SELECT * FROM accounts WHERE login = ? AND password = ?', ['Иванов Иван', '47t6437t8ygoeruygo'], function (error, results) {
    console.log(results);
});

В самом запросе в местах где будут подставляться значения мы ставим вопросительный знак, а сами значение передаем в массиве во втором аргументе функции query (в том же порядке, что и вопросительные знаки). Это гораздо безопаснее чем подставлять данные напрямую в запрос.


Также добавим к примеру еще одну запись в таблицу accounts

Код:
connection.query('INSERT INTO accounts SET login = ?, password = ?', ['Mark', '8888']);




По сути этого достаточно чтобы начать полноценно работать с mysql. Понятное дело нужно знать основы языка запросов SQL. Там еще много интересных возможностей.

Полезные ссылки:
Документация по модулю mysql (ENG)
Сайт Open Server
Сайт node js
avtor - Lev Angel
 

Вложения

  • 1604765056625.jpg
    81.3 KB · Просмотры: 384
Последнее редактирование:

hellcat

Участник портала
20 Сен 2020
59
11
20
Так и будешь все копировать с соседнего борда?
 
Реакции: nettkom

nettkom

Специалист
Автор темы
14 Сен 2020
58
42
82
да так и буду капипиздить ))) хочу объединить все уроки и статьи для новичков
 
Реакции: SAYREX

VEYYN

Начинающий специалист
29 Дек 2020
20
1
63
Как быть, если нужно сделать запросы в БД из клиентских файлов (client_packages), для использования в клиентских функциях? Подключать Бд к клиентским файлам?
 

koltr

Гуру
high coder
14 Сен 2020
154
114
120
Подключать Бд к клиентским файлам помянем БД. Делай запросы на сервер, и потом отправляй на клиент. А лучше сделай утилиту что ли, через асинхронный метод. Который будет ждать пока сервер примет данные, и отправит тебе новые.
 
Реакции: VEYYN

bm_nisarmor

Участник портала
12 Мар 2023
29
4
8
Мужики кто ни будь может помочь с авто донатом
 

Mi-Zaft

Гуру
VIP
9 Окт 2020
1,189
412
145
Реакции: DaVilka

Mi-Zaft

Гуру
VIP
9 Окт 2020
1,189
412
145
Реакции: DaVilka