Do MySQL dostopajte s pomočjo C

S to vadbo predstavim skupnosti, kako dostopati do baze podatkov MySQL iz programskega jezika C in brez uporabe preveč odvisnosti, s samo

libmysqlclient

Upam, da bo koristno tistim, ki so potrebovali tovrstno dokumentacijo in tako še naprej prispevali k skupnosti SL in pomagali tistim, ki nimajo INTERNETA.

konfiguracija

Najprej moramo preveriti, ali imamo nameščene knjižnice oblikovanja *-dev za dostop s C / C ++ do MySQL.

mysql_config --libs

Videti bi moralo biti približno tako:

-Wl, -Simbolne-funkcije –L / usr / lib / mysql -lmysqlclient rdinamična

Če preverite, ali knjižnica ni nameščena, jo namestimo z naslednjim ukazom:

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

Ker smo preverili in namestili, kaj potrebujemo za povezavo med MySQL in C, nadaljujemo z izdelavo baze podatkov:

Ustvari test podatkovne baze; USE test; Ustvari podatke v tabeli (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, ime varchar (40), starost int); VSTAVITE V VREDNOTE podatkov (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , "Gustavo Romero", 25);

Programiranje in kompilacija

Še naprej ustvarjamo kodo:

Poizvedba.c

/ * knjižnice za uporabo * / #include / * knjižnica, ki nam omogoča uporabo povezav in poizvedb z MySQL * / #include / * Za uporabo printf itd. * / int main () {MYSQL * conn; / * spremenljivka povezave za MySQL * / MYSQL_RES * res; / * spremenljivka, ki bo vsebovala rezultat poizvedbe * / MYSQL_ROW; / * spremenljivka, ki bo vsebovala polja za vsak posvetovalni zapis * / char * server = "localhost"; / * naslov strežnika 127.0.0.1, naslov localhost ali ip * / char * user = "root"; / * uporabnik poizveduje po zbirki podatkov * / char * password = "root"; / * geslo za uporabnika * / char * database = "test"; / * ime baze podatkov za poizvedbo * / conn = mysql_init (NULL); / * inicializacija za nično povezavo * / / * povezava z bazo podatkov * / if (! mysql_real_connect (conn, strežnik, uporabnik, geslo, baza podatkov, 0, NULL, 0)) {/ * določite parametre povezave predhodno nastavljen * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * če pride do napake, določite, katera napaka je bila * / exit (1); } / * pošlji poizvedbo SQL * / if (mysql_query (conn, "select * from data")) {/ * definicija poizvedbe in izvor povezave * / fprintf (stderr, "% s \ n", mysql_error ( conn)); izhod (1); } res = mysql_use_result (conn);
	printf("ID \ tIme \ t \ starost \ n"); while ((vrstica = mysql_fetch_row (res))! = NULL) / * zanko skozi spremenljivko res z vsemi zapisi, pridobljenimi za uporabo * /
		printf("% s \ t% s \ t% s \ n", vrstica [0], vrstica [1], vrstica [2]); / * spremenljivka vrstice postane matrika s številom polj v tabeli * / / * spremenljivka res se sprosti in povezava se zapre * / mysql_free_result (res); mysql_close (conn); }

Sestavljamo z:

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

Preverjanje

Izvajamo:

./Poizvedba

vir: Blog Hugo4295


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   koratsuki je dejal

    Še dobro, shranjeno v mojem arzenalu skript in vadnic na konzoli! +1 za vašega partnerja ...

  2.   Rodrigo je dejal

    Pozdravljeni, veliko čestitk za vse, kar je na spletu glede tega vprašanja, vaše je bilo najbližje rešitvi. le majhen dvom, zakaj ne dobim izvršljive ??

    v času comílar ne označi nobene napake, vendar ne generira ./ser4

  3.   Andrélo je dejal

    Kakšna ideja, kako to narediti v Fedori?

  4.   zmagovalec o je dejal

    Ne strinjam se z izmenjavo informacij, vendar če avtorske pravice niso postavljene, ker sem ta primer naredil od leta 2011 in tukaj je naslov prvotnega vira

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

    1.    živahno je dejal

      Nič hudega, Victor, ampak če opazite, da članka nisem vzel z vašega spletnega mesta, ampak z drugega, kjer na žalost niso postavili vira. Vendar pa zdaj uredim članek .. 😉

  5.   Alfonso Ovidio López Morales je dejal

    odlično znanje o izmenjavi velika svoboda

  6.   DANIELA FERNANDEZ je dejal

    In kako je mogoče vstaviti ???