Få adgang til MySQL ved hjælp af C

Med denne vejledning præsenterer jeg for samfundet, hvordan man får adgang til en MySQL-database fra C-programmeringssproget og uden at bruge for mange afhængigheder, med bare

libmysqlclient

Jeg håber, det vil være nyttigt for dem, der har brug for denne type dokumentation og dermed fortsat bidrage til SL-samfundet og hjælpe dem, der ikke har INTERNET.

konfiguration

Først skal vi kontrollere, at designbibliotekerne er installeret *-dev for at kunne få adgang fra C / C ++ til MySQL.

mysql_config --libs

Det skal se sådan ud:

-Wl, -Bsymboliske-funktioner –L / usr / lib / mysql -lmysqlclient rdynamic

Hvis du kontrollerer, at biblioteket ikke er installeret, 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

Da vi verificerer og installerer det, vi har brug for til linket mellem MySQL og C, fortsætter vi med oprettelsen af ​​databasen:

OPRET DATABASE-test; BRUG test; Opret TABEL-data (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, name varchar (40), age int); INDSÆT I dataVÆRDIER (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , 'Gustavo Romero', 25);

Programmering og kompilering

Vi fortsætter med at oprette koden:

Forespørgsel. C

/ * biblioteker, der skal bruges * / #include / * bibliotek, der giver os mulighed for at gøre brug af forbindelser og forespørgsler med MySQL * / #include / * For at bruge printf osv. * / int main () {MYSQL * conn; / * forbindelsesvariabel til MySQL * / MYSQL_RES * res; / * variabel, der indeholder resultatet af forespørgslen * / MYSQL_ROW række; / * variabel, der indeholder felterne for hver post, der høres * / char * server = "localhost"; / * serveradresse 127.0.0.1, localhost eller ip-adresse * / char * bruger = "root"; / * bruger til at søge i databasen * / char * password = "root"; / * adgangskode til den pågældende bruger * / char * database = "test"; / * navn på den database, der skal forespørges * / conn = mysql_init (NULL); / * initialisering for at nulstille forbindelsen * / / * oprette forbindelse til databasen * / hvis (! mysql_real_connect (conn, server, bruger, adgangskode, database, 0, NULL, 0)) {/ * definer de tidligere indstillede forbindelsesparametre * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * hvis der er en fejl, definer hvilken fejl der var * / exit (1); } / * send SQL-forespørgsel * / if (mysql_query (konn, "vælg * fra data")) {/ * definition af forespørgslen og oprindelsen til forbindelsen * / fprintf (stderr, "% s \ n", mysql_error ( conn)); udgang (1); } res = mysql_use_result (conn);
	printf("ID \ tName \ t \ age \ n"); mens ((række = mysql_fetch_row (res))! = NULL) / * løber gennem den variable res med alle de poster, der er opnået til brug * /
		printf("% s \ t% s \ t% s \ n", række [0], række [1], række [2]); / * rækkevariablen bliver en matrix for antallet af felter i tabellen * / / * res-variablen frigives, og forbindelsen lukkes * / mysql_free_result (res); mysql_close (konn); }

Vi sammensætter med:

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

Verifikation

Vi udfører:

./Forespørgsel

kilde: Hugo4295s blog


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   koratsuki sagde han

    Godt det, gemt i mit arsenal af scripts og tutorials på konsollen! +1 til din partner ...

  2.   Rodrigo sagde han

    Hej, mange tillykke med alt, hvad der er på nettet vedrørende dette emne, din var tættest på løsningen. bare en lille tvivl, hvorfor får jeg ikke den eksekverbare ??

    på tidspunktet for komprimering markerer den ikke nogen fejl, men den genererer ikke ./ser4

  3.   Andrélo sagde han

    Har du nogen idé om, hvordan du gør det i Fedora?

  4.   sejrherre af o sagde han

    Jeg er ikke uenig i at dele oplysningerne, men hvis ophavsretten ikke er placeret, da dette eksempel blev lavet af mig siden 2011, og her er adressen på den oprindelige kilde

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

    1.    Elav sagde han

      Intet problem Victor, men hvis du bemærker, tog jeg ikke artiklen fra dit websted, men fra en anden, hvor de desværre ikke placerede kilden. Men lige nu redigerer jeg artiklen .. 😉

  5.   Alfonso Ovidio López Morales sagde han

    fremragende deling af viden stor frihed

  6.   DANIELA FERNANDEZ sagde han

    Og hvordan kan indsættelser foretages ???