Käytä MySQL: ää C: llä

Tämän opetusohjelman avulla esitän yhteisölle, kuinka pääsyn MySQL-tietokantaan C-ohjelmointikielestä ja käyttämättä liikaa riippuvuuksia vain

libmysqlclient

Toivon, että siitä on hyötyä niille, jotka tarvitsivat tällaista dokumentaatiota, ja auttavat siten edelleen SL-yhteisöä ja auttamaan niitä, joilla ei ole Internet-yhteyttä.

kokoonpano

Ensin on tarkistettava, että suunnittelukirjastot on asennettu *-dev saada pääsy C / C ++: sta MySQL: ään.

mysql_config --libs

Sen pitäisi näyttää jotain tältä:

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

Jos tarkistat, että kirjastoa ei ole asennettu, asennamme sen seuraavalla komennolla:

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

Koska tarkistamme ja asennamme tarvitsemamme linkin MySQL: n ja C: n välille, jatkamme tietokannan luomista:

LUO TIETOKANTA-testi; KÄYTÄ testi; Luo taulukon tiedot (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, name varchar (40), age int); INSERT INTO ARVOT (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , 'Gustavo Romero', 25);

Ohjelmointi ja kokoaminen

Jatkamme koodin luomista:

Kysely. C

/ * kirjastot käytettäväksi * / #include / * kirjasto, jonka avulla voimme hyödyntää yhteyksiä ja kyselyitä MySQL: llä * / #include / * Tulostimen jne käyttämiseksi * / int main () {MYSQL * yhteys; / * yhteysmuuttuja MySQL: lle * / MYSQL_RES * res; / * muuttuja, joka sisältää kyselyn * / MYSQL_ROW rivin tuloksen; / * muuttuja, joka sisältää jokaisen tutkitun tietueen kentät * / char * server = "localhost"; / * palvelimen osoite 127.0.0.1, localhost tai ip-osoite * / char * user = "root"; / * käyttäjä kysyy tietokannasta * / char * password = "root"; / * kyseisen käyttäjän salasana * / char * database = "test"; / * kyseltävän tietokannan nimi * / conn = mysql_init (NULL); / * alustaminen yhteyden nollaamiseksi * / / * muodosta yhteys tietokantaan * / if (! mysql_real_connect (yhteys, palvelin, käyttäjä, salasana, tietokanta, 0, NULL, 0)) {/ * määrittää aiemmin asetetut yhteysparametrit * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * jos on virhe, määritä mikä virhe oli * / exit (1); } / * lähetä SQL-kysely * / if (mysql_query (conn, "valitse * tiedoista")) {/ * kyselyn määrittely ja yhteyden alkuperä * / fprintf (stderr, "% s \ n", mysql_error ( Conn)); poistuminen (1); } res = mysql_use_result (yhteys);
	printf("ID \ tNimi \ t \ ikä \ n"); kun ((rivi = mysql_fetch_row (res))! = NULL) / * silmukkaa muuttujan res läpi kaikki saadut tietueet * /
		printf("% s \ t% s \ t% s \ n", rivi [0], rivi [1], rivi [2]); / * rivimuuttujasta tulee taulukon kenttien määrän taulukko * / / * res-muuttuja vapautetaan ja yhteys suljetaan * / mysql_free_result (res); mysql_close (yhteys); }

Laadimme:

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

Todentaminen

Suoritamme:

./Kysely

lähde: Hugo4295: n blogi


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   koratsuki dijo

    Hyvä, tallennettu konsolini skriptien ja opetusohjelmien arsenaaliin! +1 kumppanillesi ...

  2.   Rodrigo dijo

    Hei, monet onnittelut kaikesta, mitä verkossa on tässä asiassa, sinun oli lähinnä ratkaisua. vain pieni epäilys, miksi en saa suoritettavaa tiedostoa?

    comílar-aikaan se ei merkitse mitään virhettä, mutta se ei luo ./ser4-tiedostoa

  3.   Andrélo dijo

    Onko sinulla ideaa tehdä se Fedorassa?

  4.   voittaja de la o dijo

    En ole eri mieltä tietojen jakamisesta, mutta jos tekijänoikeutta ei anneta, koska tämän esimerkin olen tehnyt vuodesta 2011 lähtien, ja tässä on alkuperäisen lähteen osoite

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

    1.    vilkas dijo

      Ei hätää, Victor, mutta jos huomaat, en ottanut artikkelia sivustoltasi, vaan toisesta, josta valitettavasti he eivät kirjoittaneet lähdettä. Kuitenkin juuri nyt muokkaan artikkelia .. 😉

  5.   Alfonso Ovidio López Morales dijo

    erinomainen tiedon jakaminen, suuri vapaus

  6.   DANIELA FERNANDEZ dijo

    Ja miten lisäyksiä voidaan tehdä ???