Me këtë udhëzues unë i paraqes komunitetit se si të hyni në një bazë të dhënash MySQL nga gjuha e programimit C dhe pa përdorur shumë varësi,
libmysqlclient
Shpresoj se do të jetë i dobishëm për ata që kanë nevojë për këtë lloj dokumentacioni dhe kështu të vazhdojnë të kontribuojnë në komunitetin SL dhe të ndihmojnë ata që nuk kanë INTERNET.
konfiguracion
Së pari duhet të kontrollojmë që kemi të instaluar bibliotekat e dizajnit *-dev
të jetë në gjendje të hyni nga C / C ++ në MySQL.
mysql_config --libs
Duhet të shfaqet diçka e tillë:
-Wl, -Bsymbolic-funksionet –L / usr / lib / mysql -lmysqlclient rdynamic
Në rast se kontrolloni se biblioteka nuk është e instaluar, ne e instalojmë atë me komandën e mëposhtme:
sudo apt-get install libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno-strikte-aliasing -DUNIV_LINUX -DUNIV_LINUX
Meqenëse ne verifikojmë dhe instalojmë atë që na duhet për lidhjen midis MySQL dhe C, ne vazhdojmë me krijimin e bazës së të dhënave:
Krijoni testin e bazës së të dhënave; Provë PERDORIMI; KRIJONI të dhëna në Tabela (id int AUTO_INCREMENT NOT NULL Primary Key, name varchar (40), mosha int); INSERT NO VLERAT E T data DHNAVE (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , 'Gustavo Romero', 25);
Programimi dhe përpilimi
Ne vazhdojmë të krijojmë kodin:
Pyetje.c
/ * biblioteka për të përdorur * / #përfshij / * bibliotekë që na lejon të përdorim lidhje dhe pyetje me MySQL * / # përfshij / * Në mënyrë që të përdorni printf, etj. * / int main () {MYSQL * lidh; / * ndryshorja e lidhjes për MySQL * / MYSQL_RES * res; / * ndryshorja që do të përmbajë rezultatin e rreshtit të pyetësit * / MYSQL_ROW; / * variabla që do të përmbajë fushat për secilin rekord të konsultuar * / char * server = "localhost"; / * adresa e serverit 127.0.0.1, adresa lokale ose ip * / char * user = "root"; / * përdoruesi për të kërkuar bazën e të dhënave * / char * fjalëkalimin = "rrënjë"; / * fjalëkalimi për përdoruesin në fjalë * / char * baza e të dhënave = "provë"; / * emri i bazës së të dhënave për të kërkuar * / conn = mysql_init (NULL); / * inicializimi për të anuluar lidhjen * / / * lidheni me bazën e të dhënave * / nëse (! mysql_real_connect (lidhja, serveri, përdoruesi, fjalëkalimi, baza e të dhënave, 0, NULL, 0)) {/ * përcaktoni parametrat e lidhjes të vendosur më parë * / fprintf (stderr, "% s \ n", mysql_error (lidhja)); / * nëse ekziston një gabim, përcaktoni se cili gabim ishte * / exit (1); } / * dërgoni pyetjen SQL * / if (mysql_query (lidhja, "zgjidhni * nga të dhënat")) {/ * përkufizimi i pyetjes dhe origjina e lidhjes * / fprintf (stderr, "% s \ n", mysql_error ( lidhëse)); dalja (1); } res = mysql_use_result (lidh); printf("ID \ tName \ t \ mosha \ n"); ndërsa ((rreshti = mysql_fetch_row (rez))! = NULL) / * lak nëpër ndryshoren res me të gjitha rekordet e marra për përdorim * / printf("% s \ t% s \ t% s \ n", rreshti [0], rreshti [1], rreshti [2]); / * ndryshorja e rreshtit bëhet një varg për numrin e fushave në tabelë * / / * lëshohet variabla res dhe lidhja mbyllet * / mysql_free_result (res); mysql_close (lidhja); }
Ne përpilojmë me:
gcc -o Pyetësi $ (mysql_config --cflags) Query.c $ (mysql_config -–libs)
Verifikimi
Ne ekzekutojmë:
./Pyetje
Fuente: Blog i Hugo4295
Mirë që u ruajt në arsenalin tim të skenareve dhe udhëzimeve në tastierë! +1 për partnerin tënd ...
Përshëndetje, shumë urime për gjithçka që është në internet në lidhje me këtë çështje, e juaja ishte më afër zgjidhjes. vetëm pak dyshim, pse nuk e marr ekzekutuesin ??
në kohën e komilarit nuk shënon ndonjë gabim por nuk gjeneron ./ser4
Ndonjë ide se si ta bëjmë atë në Fedora?
Unë nuk jam dakord me ndarjen e informacionit, por nëse e drejta e autorit nuk vendoset pasi që ky shembull është bërë nga unë që nga viti 2011 dhe këtu është adresa e burimit origjinal
http://hugo4295.blogspot.mx/search?q=MYSQL
Nuk ka problem Viktor, por nëse e vëreni unë nuk e mora artikullin nga faqja juaj, por nga një tjetër ku për fat të keq ata nuk e vendosën burimin. Sidoqoftë, tani e redaktoj artikullin ..
shkëmbim i shkëlqyeshëm i njohurive liri e madhe
Dhe si mund të bëhen futjet ???