Pasiekite „MySQL“ naudodami C

Naudodamas šią pamoką pristatau bendruomenei, kaip pasiekti „MySQL“ duomenų bazę iš C programavimo kalbos ir nenaudojant per daug priklausomybių, tiesiog

libmysqlclient

Tikiuosi, kad tai bus naudinga tiems, kuriems reikėjo tokio tipo dokumentų, ir taip toliau prisidės prie SL bendruomenės ir padės tiems, kurie neturi interneto.

konfigūracija

Pirmiausia turime patikrinti, ar turime įdiegtas dizaino bibliotekas *-dev kad galėtumėte pasiekti iš C / C ++ į MySQL.

mysql_config --libs

Tai turėtų pasirodyti maždaug taip:

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

Jei patikrinsite, ar biblioteka nėra įdiegta, mes ją įdiegiame naudodami šią komandą:

sudo apt-get install libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno-griežtas-slapyvardis -DUNIV_LINUX -DUNIV_LINUX

Kadangi mes patikriname ir įdiegiame tai, ko mums reikia norint susieti „MySQL“ ir „C“, mes pradedame kurti duomenų bazę:

Sukurti duomenų bazės testą; NAUDOTI testą; CREATE TABLE duomenys (id int AUTO_INCREMENT NOT NULL PRIMARY RAKTAS, vardas varchar (40), amžiaus int); ĮRAŠYTI DUOMENŲ VERTES (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL) , „Gustavo Romero“, 25);

Programavimas ir sudarymas

Mes ir toliau kuriame kodą:

Užklausa.c

/ * bibliotekos, kurias norite naudoti * / # įtraukti / * biblioteka, leidžianti mums naudotis ryšiais ir užklausomis naudojant MySQL * / #include / * Norint naudoti „printf“ ir kt. * / int main () {MYSQL * jungtis; / * „MySQL *“ / „MYSQL_RES * res“ ryšio kintamasis; / * kintamasis, kuriame bus užklausos * / MYSQL_ROW eilutės rezultatas; / * kintamasis, kuriame bus kiekvieno aplankyto įrašo laukai * / char * server = "localhost"; / * serverio adresas 127.0.0.1, localhost arba ip adresas * / char * user = "root"; / * vartotojas, norėdamas pateikti užklausą duomenų bazėje * / char * password = "root"; / * atitinkamo vartotojo slaptažodis * / char * database = "test"; / * užklausos duomenų bazės pavadinimas * / conn = mysql_init (NULL); / * inicializavimas panaikina ryšį * / / * prisijunkite prie duomenų bazės * / if (! mysql_real_connect (jungtis, serveris, vartotojas, slaptažodis, duomenų bazė, 0, NULL, 0)) {/ * apibrėžia anksčiau nustatytus ryšio parametrus * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * jei yra klaida, apibrėžkite, kuri klaida buvo * / exit (1); } / * siųsti SQL užklausą * / if (mysql_query (conn, "pasirinkite * iš duomenų")) {/ * užklausos apibrėžimas ir ryšio kilmė * / fprintf (stderr, "% s \ n", mysql_error ( jungtis)); išėjimas (1); } res = mysql_use_result (jungtis);
	printf("ID \ tVardas \ t \ amžius \ n"); o ((eilutė = mysql_fetch_row (res))! = NULL) / * perkelia kintamąjį res su visais įrašais, gautais naudoti * /
		printf("% s \ t% s \ t% s \ n", eilutė [0], eilutė [1], eilutė [2]); / * eilutės kintamasis tampa lentelių laukų skaičiaus masyvu * / / * res kintamasis atleidžiamas ir ryšys uždaromas * / mysql_free_result (res); mysql_close (conn); }

Mes sudarome:

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

Patikrinimas

Mes vykdome:

./Klausimas

Fuente: Hugo4295 tinklaraštis


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   koratsuki sakė

    Gerai, kad išsaugota mano scenarijaus ar pamokų konsolėje arsenale! +1 jūsų partneriui ...

  2.   Rodrigo sakė

    Sveiki, daug sveikinu su viskuo, kas yra internete apie šią problemą. Jūsų sprendimas buvo arčiausiai. tik truputi abejones, kodel negaunu vykdomojo failo ??

    „comílar“ metu ji nepažymi jokios klaidos, bet nesukuria ./ser4

  3.   Andrelas sakė

    Turite idėją, kaip tai padaryti Fedoroje?

  4.   nugalėtojas de la o sakė

    Aš nesutinku dalintis informacija, bet jei autorių teisės nepateikiamos, nes šį pavyzdį aš padariau nuo 2011 m.

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

    1.    gyvas sakė

      Jokių problemų Viktorai, bet jei pastebite, kad ne paėmiau straipsnį iš jūsų svetainės, bet iš kitos, kur, deja, jie nepadėjo šaltinio. Tačiau dabar redaguoju straipsnį .. 😉

  5.   Alfonso Ovidio Lópezas Moralesas sakė

    puikus dalijimasis žiniomis, didelė laisvė

  6.   DANIELA FERNANDEZ sakė

    Ir kaip galima daryti intarpus ???