Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Перевод сервера с mxINI На MySql

Статус
В этой теме нельзя размещать новые ответы.

Kazon

Компетентный
Йо

Введиение:
Многие пользователи павно даже с хорошими знаниями сидят на mxINI и все боятся браться за MySql, им кто то внедрил, что это нереально сложно, но поймите это не так, MySql ни чем не сложнее чем файлы, мне даже наоборот кажется что MySql легче и удобнее, и работает он намного быстрее файлов. Пример: На файлах у меня загружалось 392 дома за 17892 ms, а после того как я сервер перевёл на MySql R7 (Blueg), то моя скорость намного увеличилась. Пример: На MySql R7 у меня 392 дома загрузилось за 9 ms. Разница действительно очень ощутима и в данном уроке я вам покажу как перевести сервер с mxINI на MySql R7
[HR][/HR]
mxINI:
Пример считывания данных на mxINI и на MySql:

PHP:
new string[64];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "Players/%s.ini", playername);
new File = ini_openFile(string);
if(!File)
{
    ini_getString(File,"Key",PlayerInfo[playerid][pPass]);
    ini_getInteger(File,"Level",PlayerInfo[playerid][pLevel]);
    ini_getFloat(File,"pIp",PlayerInfo[playerid][pIp]);
}
Пример считывания данных с файла на mxINI.
[HR][/HR]
MySql:
А вот пример на MySql:

PHP:
new query[144];
format(query,sizeof(query), "SELECT * FROM "TABLE_ACCOUNT" WHERE name = '%s'  LIMIT 1",sendername(playerid));
mysql_function_query(dbHandle, query, true, "LoadAcc", "i", playerid);// Вызываем паблик LoadAcc с параметром playerid и включаем кэширование
Разберём функции dbHandle это подключение к MySql его возвращает mysql_connect
Пример:
PHP:
new dbHandle; // В начало мода
// В OnGameModeInit
dbHandle = mysql_connect(Хость, Логин, База, Пароль); // Подключаемcя к MySql
query - это переменная с помощью которой мы отформатировали запрос
true - Кэширование true - Включить false - Выключить. Но оно используется только для функции SELECT
LoadAcc Вызываем паблик загрузки аккаунта при входе на сервер i - Integer(Числовое значание) s - String(Строка) f - Float(Значение с точкой)

После этого создаём сам паблик загрузки
PHP:
forward LoadAcc(playerid);
public LoadAcc(playerid)
{
    new rows, fields; // Временно создаём переменные
    cache_get_data(rows, fields); // С помощью кэширования узнаём количество строк и столбцов
    if(rows) // Если есть аккаунт то....
    {
         new temp[64];
         cache_get_field_content(0, "Key", PlayerInfo[playerid][pPass]); // Строки записываются на прямую
         cache_get_field_content(0, "Level", temp); PlayerInfo[playerid][pLevel] = strval(temp); // Так делать только если у вас числовое значение то есть %i, Integer
         cache_get_field_content(0, "pIp", temp); PlayerInfo[playerid][pIp] = floatstrl(temp); // Так делать только если у вас число c точкой то есть %f, Float
    }
    return true; // Очищаем кэш
}
Вот и всё я вам показал самый маленький пример MySql и показал что он ничем не сложнее mxINI
А те кто задумался и хочет продолжить изучение MySql то вам сюда MySql R7 (BlueG) <----- НАЖАТЬ!
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу