Accedir a MySQL usant C

Amb aquest tutorial us presento a la comunitat com accedir a una base de dades MySQL des del llenguatge de programació C i sense usar massa dependències, amb només

libmysqlclient

Espero que els serveixi d'utilitat als que necessitaven aquest tipus de documentació i així seguir contribuint amb la comunitat de SL i ajudar els que no compten amb INTERNET.

Configuració

Primer hem de comprovar que tinguem instal·lada les llibreries de disseny *-dev per poder accedir des de C / C ++ a MySQL.

mysql_config --libs

Hauria d'aparèixer alguna cosa com això:

-Wl, -Bsymbolic-funcions -L / usr / lib / mysql -lmysqlclient rdynamic

En el cas que marqui que no aquesta instal·lada la llibreria la instal·lem amb la següent comanda:

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

Ja que verifiquem i instal·lem el que necessitem per a l'enllaç entre MySQL i C, procedim a la creació de la base de dades:

CREATE DATABASE prova; USE prova; CREATE TABLE dades (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, nom varchar (40), edat int); INSERT INTO dades VALUES (NULL, 'Ànima Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin Loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , 'Gustavo Romero', 25);

Programació i compilació

Prosseguim a crear el codi:

Consulta.c

/ * Llibreries que farem servir * / #include / * Llibreria que ens permet fer l'ús de les connexions i consultes amb MySQL * / #include / * Per poder utilitzar printf, etc. * / Int main () {MYSQL * conn; / * Variable de connexió per a MySQL * / MYSQL_RES * res; / * Variable que contindrà el resultat de la Consuta * / MYSQL_ROW row; / * Variable que contindrà els camps per cada registre consultat * / char * server = "localhost"; / * Adreça de servidor 127.0.0.1, localhost o direcció ip * / char * user = "root"; / * Usuari per consultar la base de dades * / char * password = "root"; / * Contrasenya per a l'usuari en qüestió * / char * database = "prova"; / * Nom de la base de dades a consultar * / conn = mysql_init (NULL); / * Inicializacion a nul·la la connexió * / / * connectar a la base de dades * / if (! Mysql_real_connect (conn, server, user, password, base de dades, 0, NULL, 0)) {/ * definir els paràmetres de la connexió abans establerts * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * Si hi ha un error definir com va ser aquest error * / exit (1); } / * Enviar consulta SQL * / if (mysql_query (conn, "select * from dades")) {/ * definició de la consulta i l'origen de la connexió * / fprintf (stderr, "% s \ n", mysql_error ( conn)); exit (1); } Res = mysql_use_result (conn);
	printf( "ID \ tNombre \ t \ tedad \ n"); while ((row = mysql_fetch_row (res))! = NULL) / * recórrer la variable res amb tots els registres obtinguts per al seu ús * /
		printf( "% S \ t% s \ t% s \ n", row [0], row [1], row [2]); / * La variable row es converteix en un arranjament pel nombre de camps que hi ha a la taula * / / * s'allibera la variable res i es tanca la connexió * / mysql_free_result (res); mysql_close (conn); }

Compilem amb:

gcc -o Consulta $ (mysql_config --cflags) Consulta.c $ (mysql_config --libs)

comprovació

executem:

./Consulta

font: Blog de Hugo4295


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa http://secbcaixabank.info/SECB-COVIDXNUMX-DENUNCIA-INSPECCION-PROTOCOLO-.pdf.

7 comentaris, deixa el teu

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Koratsuki va dir

    Bona aquesta, guardat en el meu arsenal de scripts i tutorials en consola! +1 per a tu soci ...

  2.   rodrigo va dir

    Hola moltes felicitats de tot el que trobe a la web respecte a aquest tema el teu va ser el més proper a la solució. només un petit dubte, perquè no em Jenera l'executable ??

    a l'hora de comílar no em marca cap error però no em genera el ./ser4

  3.   Andrelo va dir

    Alguna idea de com fer-ho en Fedora?

  4.   victor de l'o va dir

    no estic en desacord amb compartir la informació però si en que no es col·loquin els drets d'autor ja que aquest exemple va ser fet per mi des del 2011 i aqui aquesta l'adreça de la font original

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

    1.    ILAV va dir

      Cap problema Victor, però si et fixes no vaig prendre l'article del teu lloc, sinó d'un altre on llastimosament no van posar la font. No obstant això, ara mateix edito el tema .. 😉

  5.   alfonso ovidi lópez morals va dir

    excel·lent compartir coneixement una gran llibertat

  6.   DANIELA FERNANDEZ va dir

    I com es poden fer insercions ???