Programowanie w C – RPi – Bazy Danych – Zapytanie

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”

Autor artykułu
Dominik Bednarski

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.