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
Še dobro, shranjeno v mojem arzenalu skript in vadnic na konzoli! +1 za vašega partnerja ...
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
Kakšna ideja, kako to narediti v Fedori?
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
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 .. 😉
odlično znanje o izmenjavi velika svoboda
In kako je mogoče vstaviti ???