Få tilgang til MySQL ved hjelp av C

Med denne veiledningen presenterer jeg for samfunnet hvordan du får tilgang til en MySQL-database fra C-programmeringsspråket og uten å bruke for mange avhengigheter, med bare

libmysqlclient

Jeg håper det vil være nyttig for de som trengte denne typen dokumentasjon og dermed fortsette å bidra til SL-samfunnet og hjelpe de som ikke har INTERNETT.

Konfigurasjon

Først må vi sjekke at vi har designbibliotekene installert *-dev for å kunne få tilgang fra C / C ++ til MySQL.

mysql_config --libs

Det skal se ut som dette:

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

I tilfelle du sjekker at biblioteket ikke er installert, installerer vi det med følgende kommando:

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

Siden vi bekrefter og installerer det vi trenger for koblingen mellom MySQL og C, fortsetter vi med å lage databasen:

OPPRETT DATABASE-test; BRUK test; OPPRETT TABELLdata (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, name varchar (40), age int); INSERT IN data data VALUES (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , 'Gustavo Romero', 25);

Programmering og kompilering

Vi fortsetter å lage koden:

Query.c

/ * biblioteker å bruke * / # inkluderer / * bibliotek som lar oss bruke forbindelser og spørsmål med MySQL * / #include / * For å bruke printf, etc. * / int main () {MYSQL * conn; / * tilkoblingsvariabel for MySQL * / MYSQL_RES * res; / * variabel som vil inneholde resultatet av spørringen * / MYSQL_ROW rad; / * variabel som vil inneholde feltene for hver post som er konsultert * / char * server = "localhost"; / * serveradresse 127.0.0.1, localhost eller ip-adresse * / char * bruker = "root"; / * bruker for å spørre databasen * / char * password = "root"; / * passord for den aktuelle brukeren * / char * database = "test"; / * navn på databasen du vil spørre om * / conn = mysql_init (NULL); / * initialisering for å nullkoble tilkoblingen * / / * koble til databasen * / if (! mysql_real_connect (conn, server, bruker, passord, database, 0, NULL, 0)) {/ * definere tilkoblingsparametrene som er satt tidligere * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * hvis det er en feil, definer hvilken feil som var * / exit (1); } / * send SQL-spørring * / if (mysql_query (conn, "velg * fra data")) {/ * definisjon av spørringen og opprinnelsen til forbindelsen * / fprintf (stderr, "% s \ n", mysql_error ( conn)); utgang (1); } res = mysql_use_result (conn);
	printf("ID \ tName \ t \ age \ n"); mens ((rad = mysql_fetch_row (res))! = NULL) / * går gjennom variabelen res med alle postene som er oppnådd for bruk * /
		printf("% s \ t% s \ t% s \ n", rad [0], rad [1], rad [2]); / * radvariabelen blir en matrise for antall felt i tabellen * / / * res-variabelen frigjøres og forbindelsen er lukket * / mysql_free_result (res); mysql_close (conn); }

Vi kompilerer med:

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

Bekreftelse

Vi utfører:

./Spørsmål

Fuente: Hugo4295s blogg


7 kommentarer, legg igjen dine

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   koratsuki sa

    Bra det, lagret i mitt arsenal av skript og opplæringsprogrammer på konsollen! +1 for din partner ...

  2.   rodrigo sa

    Hei, mange gratulasjoner med alt som er på nettet angående dette problemet, din var nærmest løsningen. bare litt tvil, hvorfor får jeg ikke den kjørbare ??

    på tidspunktet for komprimering markerer det ingen feil, men det genererer ikke ./ser4

  3.   Andrélo sa

    Noen ide om hvordan du gjør det i Fedora?

  4.   vinner av o sa

    Jeg er ikke uenig i å dele informasjonen, men hvis copyright ikke er plassert siden dette eksemplet ble laget av meg siden 2011, og her er adressen til den opprinnelige kilden

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

    1.    livlig sa

      Ikke noe problem Victor, men hvis du merker at jeg ikke tok artikkelen fra nettstedet ditt, men fra en annen der de dessverre ikke la kilden. Akkurat nå redigerer jeg imidlertid artikkelen .. 😉

  5.   Alfonso Ovidio López Morales sa

    utmerket deling av kunnskap stor frihet

  6.   DANIELA FERNANDEZ sa

    Og hvordan kan det settes inn ???