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
Gerai, kad išsaugota mano scenarijaus ar pamokų konsolėje arsenale! +1 jūsų partneriui ...
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
Turite idėją, kaip tai padaryti Fedoroje?
Aš nesutinku dalintis informacija, bet jei autorių teisės nepateikiamos, nes šį pavyzdį aš padariau nuo 2011 m.
http://hugo4295.blogspot.mx/search?q=MYSQL
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į .. 😉
puikus dalijimasis žiniomis, didelė laisvė
Ir kaip galima daryti intarpus ???