Accedi a MySQL utilizzando C

Con questo tutorial presento alla comunità come accedere a un database MySQL dal linguaggio di programmazione C e senza usare troppe dipendenze, con solo

libmysqlclient

Spero che possa essere utile a chi aveva bisogno di questo tipo di documentazione e quindi continuare a contribuire alla comunità SL e aiutare chi non ha INTERNET.

Configurazione

Per prima cosa dobbiamo verificare di aver installato le librerie di progettazione *-dev per poter accedere da C / C ++ a MySQL.

mysql_config --libs

Dovrebbe apparire qualcosa del genere:

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

Nel caso in cui verifichi che la libreria non è installata, la installiamo con il seguente comando:

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

Avendo verificato e installato quello che ci serve per il collegamento tra MySQL e C, procediamo alla creazione del database:

CREATE DATABASE test; USE test; CREATE TABLE data (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, nome varchar (40), age int); INSERT INTO data VALUES (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , "Gustavo Romero", 25);

Programmazione e compilazione

Continuiamo a creare il codice:

Query.c

/ * librerie che useremo * / #include / * libreria che ci consente di utilizzare connessioni e query con MySQL * / #include / * Per utilizzare printf, ecc. * / int main () {MYSQL * conn; / * variabile di connessione per MySQL * / MYSQL_RES * res; / * variabile che conterrà il risultato della query * / MYSQL_ROW riga; / * variabile che conterrà i campi per ogni record consultato * / char * server = "localhost"; / * indirizzo server 127.0.0.1, localhost o indirizzo ip * / char * user = "root"; / * utente per interrogare il database * / char * password = "root"; / * password per l'utente in questione * / char * database = "test"; / * nome del database da interrogare * / conn = mysql_init (NULL); / * inizializzazione per annullare la connessione * / / * connettersi al database * / if (! mysql_real_connect (conn, server, utente, password, database, 0, NULL, 0)) {/ * definire i parametri di connessione precedentemente impostato * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * se c'è un errore definire quale errore era * / exit (1); } / * invia una query SQL * / if (mysql_query (conn, "select * from data")) {/ * definizione della query e origine della connessione * / fprintf (stderr, "% s \ n", mysql_error ( conn)); uscita (1); } res = mysql_use_result (conn);
	printf("ID \ tNome \ t \ età \ n"); while ((row = mysql_fetch_row (res))! = NULL) / * scorre la variabile res con tutti i record ottenuti per l'uso * /
		printf("% s \ t% s \ t% s \ n", riga [0], riga [1], riga [2]); / * la variabile di riga diventa un array per il numero di campi nella tabella * / / * la variabile res viene rilasciata e la connessione viene chiusa * / mysql_free_result (res); mysql_close (conn); }

Compiliamo con:

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

Verifica

Eseguiamo:

./Query

fonte: Blog di Hugo4295


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   koratsuki suddetto

    Bene, salvato nel mio arsenale di script e tutorial su console! +1 per il tuo partner ...

  2.   rodrigo suddetto

    Ciao, tante congratulazioni per tutto ciò che c'è sul web riguardo a questo problema, la tua è stata la più vicina alla soluzione. solo un piccolo dubbio, perché non ottengo l'eseguibile ??

    al momento del comílar non segnala alcun errore ma non genera il ./ser4

  3.   Andrello suddetto

    Qualche idea su come farlo in Fedora?

  4.   vincitore dell'o suddetto

    Non sono in disaccordo con la condivisione delle informazioni ma se il copyright non è posto poiché questo esempio è stato fatto da me dal 2011 ed ecco l'indirizzo della fonte originale

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

    1.    vivace suddetto

      Nessun problema Vittorio, ma se noti non ho preso l'articolo dal tuo sito, ma da un altro dove purtroppo non hanno messo la fonte. Tuttavia, in questo momento modifico l'articolo .. 😉

  5.   Alfonso Ovidio López Morales suddetto

    ottima condivisione della conoscenza grande libertà

  6.   DANIELA FERNANDEZ suddetto

    E come si possono fare gli inserimenti ???