Данная тема предназначена для новичков, которые только начинают свой путь и хотят разобраться с базами данных.
В данном уроке я попытаюсь научить, Вас - дорогих новичков самым простым азам работы с базой данных.
Да, безусловно есть другие темы по типу подключения и так далее - хочу собрать их в одну единую тему и немного сделать ремейк.
Выбор локальной машины.
Локальная машина - важнейшая часть для работы с базами, и вообще для хранения веб-приложений на личном ПК не используя хостинг. Но стоит учитывать, что локальная база данных не сможет быть использована допустим на хостинге не импортировав конечный результат базы на сам хостинг!
Одни из самых популярных машин - OpenServer и Denwer. В моём случае - буду использовать OpenServer, что и, Вам, советую.
Создание первой базы данных.
Давайте сначала установим OpenServer, ссылка на скачивание всех ресурсов будет предоставлена в конце урока.
Запустить прямо-таки сразу базу на OpenServer'e не получится, её нужно настроить в настройках.
Чтобы это сделать - запустите OpenServer с ярлыка от имени администратора (По умолчанию он должен запускаться в автоматическом режиме администратором), в панели задач, Вы, сможете увидеть появившийся значок флажка. Он может быть красный, зелёный, жёлтый - в зависимости от статуса работы машины.
https://sun9-80.userapi.com/impg/hlFZLLwofWrLfrV71k9Uhf0oxsIA-Cbhc-rEcQ/gKwj4nx8doE.jpg?size=254x40&quality=96&sign=4334e43188a8a2e577de4aa6a4698618& type=album
Нажав правой кнопкой по флажку OpenServer'a появится меню, в котором нужно выбрать пункт "Настройки".
https://sun9-49.userapi.com/impg/v6EOGVnlQ3lMiZjSKFMaQeuQKTXTVh3o9AL70A/W6XMhTCRLvw.jpg?size=168x289&quality=96&sign=d2328745cdf5513aad836fa39dcc39a0& type=album
Откроется окно, так называемое настройкой. Сверху, Вы, увидете много разных пунктов меню, которое отвечает за свою часть на локальной машине.
Нам нужен пункт с названием "Модули". Откроем его, посмотрим что мы имеем.
По умолчанию, если ничего не менялось - MySQL /Maria DB будут пустыми, именно этот пункт нужно настроить для работы базы данных.
https://sun9-6.userapi.com/impg/1Yzdoy1K_E3_MB97SFWduzXdqoxHr17d_EEhcQ/hu-tjb7WANM.jpg?size=579x399&quality=96&sign=36f5abd43f2d3914a1549ca10a1de24c& type=album
Можете выбрать основу phpMyAdmin сами, я лично использую - MySQL 5.7 for WIN10. Отличия не замечал, ничего сказать по поводу MariaDB - не могу.
В конечном итоге должно получиться, что пункты MySQL / Maria DB заполнены, а Prostage SQL - нет. Так и должно быть. (см. скрин выше)
Сохраняем и перезапускаем/запускаем OpenServer. Если всё правильно установлено - флажок из красного перекрасится в зелёный.
Создание первой базы данных.
Итак, если вышеперечисленный пункт был выполнен - должен заработать сайт
http://127.0.0.1/openserver/phpmyadmin/
Переходим по нему и нас встречает окно авторизации.
https://sun9-71.userapi.com/impg/a44jrhgGfBVnjSm2ZBRLFTCVqQRiFObLN4OGpA/yCrQoU0warI.jpg?size=455x460&quality=96&sign=e6742f869d324163458a278f9d777f31& type=album
Для входа нужны данные. В зависимости от выбранной версии phpMyAdmin - выбирайте данные из нижеперечисленного списка:
MySQL любая версия: Login: root Password: root -------- Maria DB любая версия: Login: root Password: отсутствует
Выбираете нужные данные исходя из версии PMY(phpMyAdmin) и входите, вход должен быть успешным, если что-то не подошло - напишите в тему, отвечу.
Итак, мы попадаем на главную страницу локальной базы данных, пугаться нечему - со временем разберётесь во всём.
https://sun9-85.userapi.com/impg/fzUxYS_zdrhPjIX6rAGZYT4dYZSYNkDTois1SQ/Ru0oo8NwBXI.jpg?size=1280x582&quality=96&sign=57f8b12391e215276cb8bb99823d46df& type=album
Нажимаем на пункт сверху - "Базы Данных", попадаем на страницу со всеми доступными созданными базами данных.
https://sun9-36.userapi.com/impg/ClHrbqobqFL1IAUfm_cuEdATW17hZcojU4QN9w/qhI5OKglnDc.jpg?size=1280x577&quality=96&sign=3e06a72306ee39b138d33e1d2e07dd99& type=album
Тут можно создать базу данных, сколько угодно - но самое главное правило учитывать кодировку, создадим же свою первую базу данных!
В поле ввода: "Имя базы данных" - можете ввести любое имя базы данных, не слишком длинное чтобы легче было запомнить и использовать в дальнейшем.
Теперь самое ответственное - кодировка. Кодировка бывает многих типов, начиная от юникода - заканчивая "эльфийским языком".
Для работы с русским языком, и комфортной работой с базой советую использовать кодировку: cp1251 / cp1251_bin (бинарная кодировка, разницы не видел)
По идеалу должно получиться следующим образом:
https://sun9-26.userapi.com/impg/Jf6_jA9ac63MImcnOFCnA3B74BMHGqjR-waKdw/BOji5apmk4k.jpg?size=1280x580&quality=96&sign=c112eb5a0929948ae10a1d5e79151b04& type=album
Нажав кнопочку "Создать" - магическим образом у нас создаётся база данных, в которую уже можно соответственно создавать таблицы и вносить в них данные.
Подключение базы данных в мод.
Подключение базы в мод - самая простая задача. Для начала скачайте плагин и инклуд с сайта github. (Все ссылки в конце урока)
Актуальная и хорошая версия плагина для работы с базой данных - MYSQL R41-4.
Скачав его и распаковав, как нужно - нужно вписать пару строк в мод.
В самое начало, после #include <a_samp> нужно вписать #include <a_mysql> с учётом "a_", без этого - работать не будет.
Если всё прекрасно и скомпилировав мод ошибки не будет - продолжаем дальше.
После всех инклудов вставляем дефайны, которые облегчат работу, и так же новую переменную для подключения.
Вписываем следующий код в начало после инклудов:
#define MySQL_USER "" // Имя юзера в базе данных #define MySQL_PASS "" // Пароль от юзера в БД #define MySQL_BASE "" // Созданная нами база данных #define MySQL_HOST "" // IP-Адресс хостинга базы данных, в нашем случае 127.0.0.1 или же localhost. // Создадим переменную для подключения базы данных. new MySQL:dbHandle; /* можете назвать переменную как угодно, но не запутайтесь в будущем. */
В самый конец мода:
stock ConnectMySQL()
{
dbHandle = mysql_connect(MySQL_HOST, MySQL_USER, MySQL_PASS, MySQL_BASE);
switch(mysql_errno(dbHandle))
{
case 0: printf("База данных (%s) подключена успешно!", MySQL_BASE);
default: printf("База данных (%s) не смогла подключиться. Ошибка: %d", mysql_errno(dbHandle));
}
/* В переменную, которую мы создали выше делаем подключение, и её же будем использовать для подключения во всяких командах БД в самом коде */
return 1;
}
В OnGameModeInit() - в самое начало вписываем:
ConnectMySQL();
Если всё сделано верно - ошибок не будет.
Вот подключение и готово, давайте объясню пару команд для кода:
mysql_query(MySQL:handle, const query[]); // Создание запроса на базу данных используя переменную подключения - dbHandle, запрос может быть любым, об этом уже читайте в документации SQL.
mysql_tquery(MySQL:handle, const query[], const callback[] = "", const format[] = "", {Float, _:...}) // Создание запроса на базу так же как и в обычном query, но уже данная строчка принимает много аргументов для передачи в функцию, которая будет срабатывать при выполнении.
mysql_format(MySQL:handle, обычный формат); // Cлужит для форматирования запросов, лучше делать конечно через mysql_format, при обычном - есть возможность ошибиться и всё будет плохо. Для запросов в базу - используйте этот формат
mysql_close(MySQL:handle); // Закрытие подключения.
В основном используются только эти функции, остальное можете прочесть на официальном портале GitHub плагина.
Ссылки на ресурсы:
MySQL R41-4 - GitHub
OpenServer - Official Site
Denwer - Official Site
Тема со всеми основными ошибками в MySQL - Pawn-Wiki
Автор: 0def1x
Сообщение отредактировал 0def1x: 11 октября 2022 - 14:46
Вход
Регистрация
Помощь

Тема закрыта













