Kazon
Компетентный
Йо
Введиение:
Многие пользователи павно даже с хорошими знаниями сидят на mxINI и все боятся браться за MySql, им кто то внедрил, что это нереально сложно, но поймите это не так, MySql ни чем не сложнее чем файлы, мне даже наоборот кажется что MySql легче и удобнее, и работает он намного быстрее файлов. Пример: На файлах у меня загружалось 392 дома за 17892 ms, а после того как я сервер перевёл на MySql R7 (Blueg), то моя скорость намного увеличилась. Пример: На MySql R7 у меня 392 дома загрузилось за 9 ms. Разница действительно очень ощутима и в данном уроке я вам покажу как перевести сервер с mxINI на MySql R7
[HR][/HR]
mxINI:
Пример считывания данных на mxINI и на MySql:
Пример считывания данных с файла на mxINI.
[HR][/HR]
MySql:
А вот пример на MySql:
Разберём функции dbHandle это подключение к MySql его возвращает mysql_connect
Пример:
query - это переменная с помощью которой мы отформатировали запрос
true - Кэширование true - Включить false - Выключить. Но оно используется только для функции SELECT
LoadAcc Вызываем паблик загрузки аккаунта при входе на сервер i - Integer(Числовое значание) s - String(Строка) f - Float(Значение с точкой)
После этого создаём сам паблик загрузки
Вот и всё я вам показал самый маленький пример MySql и показал что он ничем не сложнее mxINI
А те кто задумался и хочет продолжить изучение MySql то вам сюда MySql R7 (BlueG) <----- НАЖАТЬ!
Введиение:
Многие пользователи павно даже с хорошими знаниями сидят на 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]);
}
[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 и включаем кэширование
Пример:
PHP:
new dbHandle; // В начало мода
// В OnGameModeInit
dbHandle = mysql_connect(Хость, Логин, База, Пароль); // Подключаемcя к MySql
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 то вам сюда MySql R7 (BlueG) <----- НАЖАТЬ!
Последнее редактирование:
