Pristupite MySQL-u koristeći C

Ovim tutorijalom predstavljam zajednici kako pristupiti MySQL bazi podataka iz programskog jezika C i bez korištenja previše ovisnosti, sa samo

libmysqlclient

Nadam se da će biti od koristi onima kojima je ovakva dokumentacija bila potrebna i na taj način nastaviti doprinositi SL zajednici i pomoći onima koji nemaju INTERNET.

konfiguracija

Prvo moramo provjeriti da li imamo instalirane biblioteke dizajna *-dev da biste mogli pristupiti MySQL-u sa C/C++.

mysql_config --libs

Nešto poput ovoga bi se trebalo pojaviti:

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

Ako pokazuje da biblioteka nije instalirana, instaliramo je sljedećom naredbom:

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

Sada kada smo verifikovali i instalirali šta nam je potrebno za vezu između MySQL-a i C-a, nastavljamo sa kreiranjem baze podataka:

CREATE DATABASE test; USE test; CREATE TABLE podaci (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, ime varchar(40), age int); UMETNI U VRIJEDNOSTI podataka (NULL, 'Alma Hernandez', 28), (NULL, 'Hose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , 'Gustavo Romero', 25);

Programiranje i kompilacija

Nastavljamo sa kreiranjem koda:

Query.c

/* biblioteke koje ćemo koristiti */ #include /* biblioteka koja nam omogućava da koristimo veze i upite sa MySQL */ #include /* Da biste mogli koristiti printf, itd. */ int main() { MYSQL *conn; /* varijabla veze za MySQL */ MYSQL_RES *res; /* varijabla koja će sadržavati rezultat upita */ MYSQL_ROW red; /* varijabla koja će sadržavati polja za svaki konsultirani zapis */ char *server = "localhost"; /*adresa servera 127.0.0.1, localhost ili ip adresa */ char *user = "root"; /*korisnik za upit baze podataka */ char *password = "root"; /* lozinka za dotičnog korisnika */ char *database = "test"; /*ime baze podataka za upit */ conn = mysql_init(NULL); /*inicijalizirati vezu na null */ /* povezivanje s bazom podataka */ if (!mysql_real_connect(conn, server, korisnik, lozinka, baza podataka, 0, NULL, 0)) { /* definiramo parametre veze prije uspostavljanja */ fprintf(stderr, "%s\n", mysql_error(conn)); /* ako postoji greška definišemo koja je greška */ exit(1); } /* pošalji SQL upit */ if (mysql_query(conn, "odaberi * iz podataka")) { /* definicija upita i porijekla veze */ fprintf(stderr, "%s\n", mysql_error( conn)); izlaz(1); } res = mysql_use_result(conn);
	printf("ID\tIme\t\starost\n"); dok ((red = mysql_fetch_row(res)) != NULL) /* petlja kroz varijablu res sa svim zapisima dobijenim za upotrebu */
		printf("%s\t%s\t%s \n", red[0],red[1],red[2]); /* varijabla reda se pretvara u niz prema broju polja u tabeli */ /* varijabla res se oslobađa i veza se zatvara */ mysql_free_result(res); mysql_close(conn); }

Kompajliramo sa:

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

Verifikacija

Izvršavamo:

./Consultation

Izvor: Blog Hugo4295


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   koratsuki rekao je

    Dobar, sačuvan u mom arsenalu konzolnih skripti i tutorijala! +1 za vašeg partnera…

  2.   Rodrigo rekao je

    Pozdrav, čestitam sve što postoji na webu u vezi sa ovom temom, vaše je bilo najbliže rješenju. Samo malo pitanje, zašto ne mogu dobiti izvršni fajl?

    Kada dođe vrijeme za kompajliranje, ne pokazuje nikakve greške, ali ne generiše ./ser4

  3.   Andrélo rekao je

    Imate li ideju kako to učiniti u Fedori?

  4.   victor de la o rekao je

    Ne slažem se sa dijeljenjem informacija, ali se ne slažem sa nepostavljanjem autorskih prava jer sam ovaj primjer napravio od 2011. godine, a ovdje je adresa originalnog izvora

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

    1.    živahno rekao je

      Nema problema Viktore, ali ako primjećuješ, nisam uzeo članak sa tvog sajta, već sa drugog gde nažalost nisu stavili izvor. Međutim, trenutno uređujem članak.. 😉

  5.   Alfonso Ovidio Lopez Morales rekao je

    odlična deljenje znanja velika sloboda

  6.   DANIELA FERNANDEZ rekao je

    A kako možete napraviti umetke???