MOP TTEX 144 Опубликовано 4 июля, 2018 (изменено) Всем привет, сегодня я объясню Вам некоторые функции плагина MySQL R39-6 от BlueG. Итак, начнем. [spoiler=Подключение] 1. Подключение Эта функция довольно простая: mysql_connect(const host[], const user[], const database[], const password[], port = 3306, bool:autoreconnect = true, pool_size = 2); const host[] - адрес хостингаconst user[] - ник пользователя хостинга const database[] - имя базы данных (чаще всего она совпадает с ником, или ID пользователя хостинга)const password[] - пароль от БДport - порт, по которому пройдет подключение autoreconnect - судя по названию это переподключение к БД. pool_size - честно сам не знаю Как же использовать подключение: new mysql_connect_id;//переменная подключение public OnGameModeInit()//в паблик загрузки сервера { mysql_connect_id = mysql_connect("127.0.0.1", "root", "data", "");//остальные аргументы можно не использовать return 1; } Все, Вы успешно подключились к MySQL. (если конечно ввели верные данные) [spoiler=Запросы] 2. Запрос в базу данных Ее можно использовать для создания нового аккаунта, взятия данных, обновления данных (пример) mysql_tquery(connectionHandle, query[], callback[] = "", format[] = "", {Float,_}:...); connectionHandle - переменная нашего подключенияquery[] - сам запрос callback[] - кэлбэк (паблик) в который придет результатformat[] - не знаю как объяснить, в общем, то что находится в шапке паблика (в формате dsf и тп.){Float,_}:... - то же, что и сверху, но уже в виде переменных (к примеру playerid, reason, и тп)2.1 Добавить данные в таблицу mysql_tquery(mysql_connect_id, "INSERT INTO `таблица` (`Name`, `Pass`) VALUES ('Max_Modem', 'russia')"); 2.2 Извлечь данные с таблицы 2.2.1 Извлечь целое число/число с поплавком cache_get_field_content_int(row, const field_name[], connectionHandle = 1); cache_get_field_content_float(row, const field_name[], connectionHandle = 1); row - строка в таблицеfield_name - название столбца в таблице (к примеру Name, Pass, Email) connectinHandle - переменная подключения к бд 2.2.2 Извлечь текст cache_get_field_content(row, const field_name[], destination[], connectionHandle = 1, max_len = sizeof(destination)); row - строка в таблицеfield_name - название столбца в таблице (к примеру Name, Pass, Email) destination - переменная, в которую записываем текст connectinHandle - переменная подключения к бд max_len - размер текста 2.3 Выбрать строку в таблице mysql_tquery(mysql_connect_id, "SELECT * FROM `таблица` WHERE `Name` = '%s'", sendername); Примеры: public OnPlayerConnect(playerid) { new sendername[MAX_PLAYERS_NAME], str[128]; GetPlayerName(playerid, sendername, 24); format(str, 128, "SELECT * FROM `таблица` WHERE `Name` = 'Max_Modem'", sendername); mysql_tquery(mysql_connect_id, str, "LoadAcc", "d", playerid); return 1; } public LoadAcc(playerid) { new rows, fields; get_cache_data(rows, fields); if(!rows) { //аккаунт не найден return 1; } cache_get_field_content(0, "Name", name, mysql_connect_id, 25);//текст level = cache_get_field_content_int(0, "Level", mysql_connect_id);//число pos = cache_get_field_content_float(0, "Pos", mysql_connect_id);//координата return 1; } [spoiler=Обновление] 3. Сохранение/обновление данных mysql_tquery(mysql_connect_id, "UPDATE `таблица` SET `столбец` = '1' WHERE `Name` = 'MAX_MODEM'); Пример как сохранять: new sendername[MAX_PLAYERS_NAME], str[128]; GetPlayerName(playerid, sendername, 24); format(str, 128, "UPDATE `таблица` SET `Level` = '%d' WHERE `Name` = '%s', level, name); mysql_tquery(mysql_connect_id, str); Думаю это Вам поможет, если что-то вспомню, напишу еще. Автор: MOP TTEX (я) Изменено 4 июля, 2018 пользователем MOP TTEX 5 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vegas 91 Опубликовано 14 июля, 2018 @MOP TTEX, от R41 отличаются сильно?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
DREZZ 45 Опубликовано 14 июля, 2018 @Vegas,Неа,не сильно.Так только добавили несколько строк в r41. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты