Wprowadzenie.
Podstawowa praca z bazami danych polega na tworzeniu zapytań do bazy danych. Za pomocą zapytań jesteśmy w stanie między innymi przechowywać, manipulować oraz odczytywać dane z bazy danych. We wpisie przedstawiłem proste zapytanie, które tworzy nową bazę danych.
Zakres wpisu.
- Program w C
- Plik Makefile
- Testy
Program w C
Kod programu, który pozwoli na przetestowanie zapytania do bazy danych MySQL zapisałem w pliku main.c i wygląda następująco.
#include <stdio.h> #include <mysql/mysql.h> int main(int argc, char **argv) { MYSQL *dbConn; char *dbServer = "localhost"; char *dbUser = "uzytkownik"; char *dbPassword = "haslo"; char *dbName = ""; dbConn = mysql_init(NULL); /* Nazwiązanie połączenia z bazą danych */ if (!mysql_real_connect(dbConn, dbServer, dbUser, dbPassword, dbName, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(dbConn)); return 1; } fprintf(stdout, "Polaczenie z baza danych przebieglo pomyslnie\n"); if (mysql_query(dbConn, "CREATE DATABASE testowaBazaDanych;")) { fprintf(stderr, "%s\n", mysql_error(dbConn)); return 1; } fprintf(stdout, "Baza danych zostala stworzona\n"); mysql_close(dbConn); return 0; }
Nową funkcją jaka znajduje się w tym kodzie jest mysql_query(), natomiat pozostałe funkcje zostały opisane w poprzednim wpisie, który znajduje się pod tym linkiem.
int mysql_query(MYSQL *mysql, const char *stmt_str) – funkcja ta kieruje zapytanie do bazy danych. Ciąg znakowy zapytania (*stmt_str) musi być zakończony znakiem NULL. Zazwyczaj ciąg znakowy string (*stmt_str) składa się z pojedynczego zapytania, wówczas na końcu zapytania nie jest konieczne stosowanie średnika ” ; ” lub ” \g “, natomiast w przypadku gdy zapytanie będzie składało się z wielu zapytań, wówczas zapytania muszą zostać oddzielone znakiem ” ; “. Funkcja mysql_query() nie może zostać zastosowana do zapytań gdzie baza danych zawiera dane w postaci binarnej. Do tego rodzaju danych należy wykorzystać funkcję mysql_real_query(). Jeżeli chcemy sprawdzić czy zapytanie zwróciło jakieś dane, można zastosować funkcję mysql_field_count(). Funkcja mysql_query() zwraca wartość zero w przypadku jeśli zapytanie zakończyło się powodzeniem w przeciwnym razie otrzymujemy wartość niezerową.
Dokładniejszy opis powyższej funkcji znajdziemy na stronie:
https://dev.mysql.com/doc/refman/8.0/en/c-api-functions.html
Plik Makefile
Konstrukcję pliku Makefile przedstawiłem we wpisie Programowanie w C – RPi – Bazy Danych – Pierwszy program
Testy
Gdy mamy przygotowany program w C (main.c) oraz plik Makefile może przejść do kompilacji oraz uruchomienia naszego programu.
W konsoli wpisujemy polecenie:
$ make
Następnie uruchamiamy program poleceniem:
$ ./test
Wynik jaki otrzymamy powinien wyglądać następująco:
Polaczenie z baza danych przebieglo pomyslnie
Baza danych zostala stworzona
Z powyższego wyniku nie jesteśmy w stanie stwierdzić, czy wykonało się to na czym nam zależało. W celu sprawdzenia, czy została stworzona baza danych możemy skorzystać z darmowego narzędzia, którym jest phpMyAdmin.
Logując się do panelu phpMyAdmin po wykonaniu powyższego programu naszym oczom w drzewku z bazami danych powinna ukazać się nowo stworzona baza danych “testowaBazaDanych”