Среда MySQL. В данном F.A.Q. мы более близко познакомимся с MySQL.
SQL запросы. Structured Query Language - язык структурированных запросов. Это специальный язык, который позволяет нам управлять данными в реляционных базах данных. Следовательно, не сложно будет понять что именно его и будем использовать для управления.
Знакомимся с операторами:
Операторы определения данных: CREATE - создает объект БД ALTER - изменяет объект DROP - удаляет объект
Операторы манипуляции данными: SELECT - считывает данные INSERT - добавляет новые данные UPDATE - изменяет существующие данные DELETE - удаляет данные
Операторы определения доступа к данным: GRANT - предоставляет пользователю разрешения на определенные операции с объектом REVOKE - отзывает ранее выданные разрешения DENY - задает запрет, имеющий приоритет над разрешением
Операторы управления транзакциями: COMMIT - применяет транзакцию. ROLLBACK - откатывает все изменения, сделанные в контексте текущей транзакции. SAVEPOINT - делит транзакцию на более мелкие участки.
Итак, как же мы работаем. Начиная с версии 0.2, мультиплеер поддерживает возможность создания плагинов, расширяющих возможности сервера. Наиболее популярными являются плагины для работы с СУБД MySQL, а именно плагин от G-sTyLeZzZ's. Сервер после определения БД, может посылать запросы MySQL серверу, который их обрабатывает.
Функции плагина:
samp_mysql_query(query[]) Отправка SQL запроса, пример использования:
Код
new string[256]; format(string, sizeof(string), "SELECT `password` FROM `users` WHERE `username` = '%s'", PlayerName(playerid)); mysql_query(string);//посылает запрос лежащий в переменной string
samp_mysql_connect(server[], user[], password[]) Соединение с MySQL сервером, пример использования:
Код
mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS))//подключаемся с массивами //где SQL_HOST, SQL_USER, SQL_DB, SQL_PASS = IP MySQL сервера, юзер, пароль, название БД.
samp_mysql_ping() Пингует MySQL сервер, обычно используется для проверки соединился или нет, пример использования:
Код
if(mysql_ping() == 1)//проверка подключились мы к MySQL { printf("[MYSQL]: Подключение к `%s` выполнено!", SQL_DB); } else { printf("[MYSQL]: [ERROR]: Подключение к `%s` не выполнено", SQL_DB); }
samp_mysql_free_result() Сбрасывает полученный результат от запроса, пример использования:
Код
new string[256]; format(string, sizeof(string), "SELECT `password` FROM `users` WHERE `username` = '%s'", PlayerName(playerid)); mysql_query(string);//посылает запрос лежащий в переменной string samp_mysql_free_result(string) //сброс
samp_mysql_close() Закрывает соединение с сервером MySQL, пример использования:
Код
mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS))//подключаемся с массивами //где SQL_HOST, SQL_USER, SQL_DB, SQL_PASS = IP MySQL сервера, юзер, пароль, название БД. samp_mysql_close() //отключение от сервера
samp_mysql_num_rows() Возвращает число строк, пример использования:
Код
new stroki[256]; samp_mysql_num_rows(stroki); { printf(" Число строк `%s` ", stroki); return 1; }
samp_mysql_num_field() Возвращает количество полей в таблице, пример использования:
Код
new line[1024]; new fieldvalue[128]; samp_mysql_fetch_row(line); samp_mysql_get_field("user_name", field); printf("%s ", field);
samp_mysql_store_result() Подготавливает полученный результат, пример использования:
Код
new string[256]; new result[256]; format(string, sizeof(string), "SELECT `password` FROM `users` WHERE `username` = '%s'", PlayerName(playerid)); mysql_query(string); { samp_mysql_store_result(result) { printf("`%s` ", result); } return 0; }