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
Dobrze, zapisane w moim arsenale skryptów i samouczków na konsoli! +1 dla twojego partnera ...
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
Masz pomysł, jak to zrobić w Fedorze?
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
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ł… ..
doskonałe dzielenie się wiedzą, duża swoboda
A jak można wykonać wstawki ???