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
Hyvä, tallennettu konsolini skriptien ja opetusohjelmien arsenaaliin! +1 kumppanillesi ...
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
Onko sinulla ideaa tehdä se Fedorassa?
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
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 .. 😉
erinomainen tiedon jakaminen, suuri vapaus
Ja miten lisäyksiä voidaan tehdä ???