Nakiner
Новичок
Добрый день Павно-инфо. Рад порадовать Вас новым плагином MySQL. Начнём пожалуй!
Преимущества:
Многопоточность - Да, да! Ваш сервер теперь будет заниматься своими делами.
Синтаксис R5 - Никакого кэширования, всё просто и понятно - даже для новичков.
Снижение нагрузки - Плагин не нагружает мод и не создаёт грыжи, а период простоя в этом помогает!
Подключение
Win32
Linux
Теперь немного о самом плагине:
Native's
Callback's
Define's
А теперь пример запроса.
Скорость выполнения.
Для наглядности - создайте таблицу и вбейте координаты и посмотрите сами.
Кстати говоря, если запросы на выборку не слишком объёмные, а вы забыли очистить результат - плагин сделает это за Вас.
Заключение: Смело могу утверждать, что L1 будет работать быстрее R5, нагрузки на сервер он почти не налагает, а если вы что-то не сделали плагин Вам напомнит об этом в LOG файле.
Ссылки:
Нашли ошибку, недоработку, а может быть баг? Пишите в тему или в лс.
Спасибо за внимание!
Преимущества:
Многопоточность - Да, да! Ваш сервер теперь будет заниматься своими делами.
Синтаксис R5 - Никакого кэширования, всё просто и понятно - даже для новичков.
Снижение нагрузки - Плагин не нагружает мод и не создаёт грыжи, а период простоя в этом помогает!
Подключение
PHP:
#include <mysql>
PHP:
plugins mysql
PHP:
plugins mysql.so
Native's
PHP:
native mysql_connect(const host[], const user[], const pass[], const db[], MySQL:handle = (MySQL:0), auto_reconnect = 0);
native MySQL:mysql_init(logtype = LOG_ONLY_ERRORS, printerrors = 1);
native mysql_close(MySQL:handle = (MySQL:0));
native mysql_refresh(options, MySQL:handle = (MySQL:0));
native mysql_select_db(const db[], MySQL:handle = (MySQL:0));
native mysql_query(const query[], resultid = (-1), spareid = (0), MySQL:handle = (MySQL:0));
native mysql_query_array(const query[], resultid = (-1), {Float,_}:extravars[], MySQL:handle = (MySQL:0));
native mysql_store_result(MySQL:handle = (MySQL:0));
native mysql_free_result(MySQL:handle = (MySQL:0));
native mysql_result_stored(MySQL:handle = (MySQL:0));
native mysql_fetch_field(const fieldname[], dest[], MySQL:handle = (MySQL:0));
native mysql_fetch_field_num(fieldnum, dest[], MySQL:handle = (MySQL:0));
native mysql_fetch_row(dest[], const splitter[] = "|", MySQL:handle = (MySQL:0));
native mysql_fetch_row_data(MySQL:handle = (MySQL:0));
native mysql_real_escape_string(const string[], dest[], MySQL:handle = (MySQL:0));
native mysql_num_rows(MySQL:handle = (MySQL:0));
native mysql_num_fields(MySQL:handle = (MySQL:0));
native mysql_affected_rows(MySQL:handle = (MySQL:0));
native mysql_insert_id(MySQL:handle = (MySQL:0));
native mysql_ping(MySQL:handle = (MySQL:0));
native mysql_error(dest[], MySQL:handle = (MySQL:0));
native mysql_errno(MySQL:handle = (MySQL:0));
native mysql_warning_count(MySQL:handle = (MySQL:0));
native mysql_info(dest[], MySQL:handle = (MySQL:0));
native mysql_stat(dest[], MySQL:handle = (MySQL:0));
native mysql_get_server_info(dest[], MySQL:handle = (MySQL:0));
native mysql_get_host_info(dest[], MySQL:handle = (MySQL:0));
native mysql_data_seek(rownum, MySQL:handle = (MySQL:0));
native mysql_set_character_set(const csname[], MySQL:handle = (MySQL:0));
native mysql_get_character_set(csname[], MySQL:handle = (MySQL:0));
native mysql_fetch_int(MySQL:handle = (MySQL:0));
native Float:mysql_fetch_float(MySQL:handle = (MySQL:0));
native mysql_fetch_string(dest[], MySQL:handle = (MySQL:0));
PHP:
forward OnMysqlError(error[], errorid, MySQL:handle);
forward OnMysqlQuery(resultid, spareid, MySQL:handle);
forward OnMysqlQueryArray(resultid, extravars[], MySQL:handle);
PHP:
#define LOG_OFF (0)
#define LOG_ALL (1)
#define LOG_ONLY_ERRORS (2)
PHP:
new query[100];
new ms = GetTickCount();//Будем мерить кол-во времени.
format(query,sizeof(query), "SELECT * FROM `checkpoints`");
mysql_query(query);//Формируем запрос и выбираем все записи из таблицы.
mysql_store_result();//Задействуем полученный результат.
(mysql_num_rows() > 0)//Если кол-во строк больше нуля, то
{
new Float: coord[3];//Переменные
mysql_fetch_row(query);//Выстраиваем данные для SSCanf'a
sscanf(query, "p<|>fff",
coord[0],
coord[1],
coord[2]);
SetPlayerCheckpoint(playerid, coord[0], coord[1], coord[2]);
printf("Выполнено за %d ms.", GetTickCount() - ms);
}
printf("Пустая таблица");
mysql_free_result();//Очищаем результат.
return true;
PHP:
R5
Выполнено за 17 ms.
L1
Выполнено за 10 ms.
Кстати говоря, если запросы на выборку не слишком объёмные, а вы забыли очистить результат - плагин сделает это за Вас.
Заключение: Смело могу утверждать, что L1 будет работать быстрее R5, нагрузки на сервер он почти не налагает, а если вы что-то не сделали плагин Вам напомнит об этом в LOG файле.
Ссылки:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Нашли ошибку, недоработку, а может быть баг? Пишите в тему или в лс.
Спасибо за внимание!
Последнее редактирование:
