Uzyskaj dostęp do MySQL za pomocą C

W tym samouczku przedstawiam społeczności, jak uzyskać dostęp do bazy danych MySQL z poziomu języka programowania C i bez używania zbyt wielu zależności, po prostu

libmysqlclient

Mam nadzieję, że będzie przydatna dla tych, którzy potrzebowali tego typu dokumentacji, a tym samym nadal będą współtworzyć społeczność SL i pomagać tym, którzy nie mają INTERNETU.

konfiguracja

Najpierw musimy sprawdzić, czy mamy zainstalowane biblioteki projektów *-dev aby móc uzyskać dostęp z C / C ++ do MySQL.

mysql_config --libs

Powinien wyglądać mniej więcej tak:

-Wl, -Bsymbolic functions –L / usr / lib / mysql -lmysqlclient rdynamic

W przypadku sprawdzenia, czy biblioteka nie jest zainstalowana, instalujemy ją za pomocą następującego polecenia:

sudo apt-get install libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX

Ponieważ zweryfikowaliśmy i zainstalowaliśmy to, czego potrzebujemy do połączenia między MySQL i C, przystępujemy do tworzenia bazy danych:

UTWÓRZ test BAZY DANYCH; USE test; CREATE TABLE data (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, nazwa varchar (40), wiek int); INSERT INTO data VALUES (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , „Gustavo Romero”, 25);

Programowanie i kompilacja

Nadal tworzymy kod:

Query.c

/ * biblioteki do użycia * / #include / * biblioteka, która pozwala nam korzystać z połączeń i zapytań z MySQL * / #include / * Aby użyć printf itp. * / int main () {MYSQL * conn; / * zmienna połączenia dla MySQL * / MYSQL_RES * res; / * zmienna, która będzie zawierać wynik zapytania * / MYSQL_ROW wiersz; / * zmienna, która będzie zawierać pola dla każdego sprawdzanego rekordu * / char * server = "localhost"; / * adres serwera 127.0.0.1, adres hosta lokalnego lub IP * / char * user = "root"; / * użytkownik do zapytania do bazy danych * / char * password = "root"; / * hasło danego użytkownika * / char * database = "test"; / * nazwa bazy danych do zapytania * / conn = mysql_init (NULL); / * inicjalizacja w celu zerowania połączenia * / / * połączenie z bazą danych * / if (! mysql_real_connect (conn, server, user, password, database, 0, NULL, 0)) {/ * zdefiniuj wcześniej ustawione parametry połączenia * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * jeśli wystąpił błąd, określ, który błąd był * / exit (1); } / * wyślij zapytanie SQL * / if (mysql_query (conn, "select * from data")) {/ * definicja zapytania i źródło połączenia * / fprintf (stderr, "% s \ n", mysql_error ( conn)); wyjście (1); } res = mysql_use_result (conn);
	printf("ID \ tNazwa \ t \ wiek \ n"); while ((row = mysql_fetch_row (res))! = NULL) / * pętla przez zmienną res ze wszystkimi rekordami uzyskanymi do użycia * /
		printf("% s \ t% s \ t% s \ n", wiersz [0], wiersz [1], wiersz [2]); / * zmienna wierszowa staje się tablicą dla liczby pól w tabeli * / / * zmienna res jest zwalniana i połączenie zostaje zamknięte * / mysql_free_result (res); mysql_close (conn); }

Kompilujemy z:

gcc -o Query $ (mysql_config --cflags) Query.c $ (mysql_config -–libs)

Weryfikacja

Wykonujemy:

./Pytanie

źródło: Blog Hugo4295


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   koratsuki powiedział

    Dobrze, zapisane w moim arsenale skryptów i samouczków na konsoli! +1 dla twojego partnera ...

  2.   rodrigo powiedział

    Witam, gratuluję wszystkiego, co jest w sieci w związku z tym problemem, Twój był najbliżej rozwiązania. tylko mała wątpliwość, dlaczego nie otrzymam pliku wykonywalnego?

    w momencie comílar nie oznacza żadnego błędu, ale nie generuje pliku ./ser4

  3.   Andrzej powiedział

    Masz pomysł, jak to zrobić w Fedorze?

  4.   zwycięzca powiedział

    Nie zgadzam się na udostępnienie informacji, ale jeśli nie ma praw autorskich, ponieważ ten przykład został wykonany przeze mnie od 2011 roku i tutaj jest adres oryginalnego źródła

    http://hugo4295.blogspot.mx/search?q=MYSQL

    1.    pełen życia powiedział

      Nie ma problemu Victor, ale jeśli zauważysz, nie wziąłem artykułu z Twojej strony, ale z innej, gdzie niestety nie umieścili źródła. Jednak teraz edytuję artykuł… ..

  5.   Alfonso Ovidio López Morales powiedział

    doskonałe dzielenie się wiedzą, duża swoboda

  6.   DANIELA FERNANDEZ powiedział

    A jak można wykonać wstawki ???