Åtkomst till MySQL med hjälp av C

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


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   koratsuki sade

    Bra det, sparat i min arsenal av skript och handledning på konsolen! +1 för din partner ...

  2.   Rodrigo sade

    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

  3.   Andrélo sade

    Någon idé om hur man gör det i Fedora?

  4.   segrare av o sade

    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

    1.    livlig sade

      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 .. 😉

  5.   Alfonso Ovidio López Morales sade

    utmärkt kunskapsdelning stor frihet

  6.   DANIELA FERNANDEZ sade

    Och hur kan insättningar göras ???