Med den här guiden presenterar jag för samhället hur man får åtkomst till en MySQL-databas från C-programmeringsspråket och utan att använda för många beroenden, med bara
libmysqlclient
Jag hoppas att det kommer att vara användbart för dem som behövde denna typ av dokumentation och därmed fortsätta att bidra till SL-communityn och hjälpa dem som inte har INTERNET.
konfiguration
Först måste vi kontrollera att vi har designbiblioteken installerade *-dev
för att kunna komma åt från C / C ++ till MySQL.
mysql_config --libs
Det ska se ut så här:
-Wl, -Bsymboliska funktioner –L / usr / lib / mysql -lmysqlclient rdynamic
Om du kontrollerar att biblioteket inte är installerat installerar vi det med följande kommando:
sudo apt-get install libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX
Eftersom vi verifierar och installerar vad vi behöver för länken mellan MySQL och C fortsätter vi med skapandet av databasen:
CREATE DATABASE test; ANVÄNDNINGstest; SKAPA TABELLdata (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, name varchar (40), age int); INSÄTTA I dataVÄRDEN (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , 'Gustavo Romero', 25);
Programmering och sammanställning
Vi fortsätter att skapa koden:
Fråga.c
/ * bibliotek att använda * / #include / * bibliotek som tillåter oss att använda anslutningar och frågor med MySQL * / #include / * För att använda printf, etc. * / int main () {MYSQL * conn; / * anslutningsvariabel för MySQL * / MYSQL_RES * res; / * variabel som kommer att innehålla resultatet av frågan * / MYSQL_ROW rad; / * variabel som innehåller fälten för varje post som konsulteras * / char * server = "localhost"; / * serveradress 127.0.0.1, localhost eller ip-adress * / char * user = "root"; / * användare för att fråga databasen * / char * password = "root"; / * lösenord för användaren i fråga * / char * database = "test"; / * namn på databasen som du vill fråga * / conn = mysql_init (NULL); / * initialisering för att nollställa anslutningen * / / * ansluta till databasen * / if (! mysql_real_connect (anslut, server, användare, lösenord, databas, 0, NULL, 0)) {/ * definiera de anslutningsparametrar som tidigare ställts in * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * om det finns ett fel definiera vilket fel som var * / exit (1); } / * skicka SQL-fråga * / if (mysql_query (anslut, "välj * från data")) {/ * definition av frågan och anslutningens ursprung * / fprintf (stderr, "% s \ n", mysql_error ( conn)); utgång (1); } res = mysql_use_result (conn); printf("ID \ tName \ t \ age \ n"); medan ((rad = mysql_fetch_row (res))! = NULL) / * slingra genom variabeln res med alla poster som erhållits för användning * / printf("% s \ t% s \ t% s \ n", rad [0], rad [1], rad [2]); / * radvariabeln blir en matris med antalet fält i tabellen * / / * res-variabeln släpps och anslutningen stängs * / mysql_free_result (res); mysql_close (anslut); }
Vi sammanställer med:
gcc -o Query $ (mysql_config --cflags) Query.c $ (mysql_config -–libs)
Verifiering
Vi utför:
./Fråga
Fuente: Hugo4295s blogg
Bra det, sparat i min arsenal av skript och handledning på konsolen! +1 för din partner ...
Hej, många gratulationer för allt som finns på nätet angående denna fråga, din var närmast lösningen. bara lite tvivel, varför får jag inte den körbara filen ??
vid tidpunkten för komprimering markerar det inte något fel men det genererar inte ./ser4
Någon idé om hur man gör det i Fedora?
Jag håller inte med om att dela informationen men om upphovsrätten inte placeras eftersom detta exempel gjordes av mig sedan 2011 och här är adressen till den ursprungliga källan
http://hugo4295.blogspot.mx/search?q=MYSQL
Inga problem Victor, men om du märker att jag inte tog artikeln från din webbplats, men från en annan där de tyvärr inte lade källan. Men just nu redigerar jag artikeln .. 😉
utmärkt kunskapsdelning stor frihet
Och hur kan insättningar göras ???