A MySQL elérése a C használatával

Ezzel az oktatóanyaggal bemutatom a közösségnek, hogyan lehet elérni a MySQL adatbázist a C programozási nyelvből és túl sok függőség használata nélkül, csupán

libmysqlclient

Remélem, hasznos lesz azok számára, akiknek szüksége van ilyen típusú dokumentációra, és így továbbra is hozzájárulnak az SL közösséghez, és segítenek azoknak, akiknek nincs Internetjük.

konfiguráció

Először ellenőriznünk kell, hogy telepítve vannak-e a tervezési könyvtárak *-dev hogy a C / C ++ -ról a MySQL-hez tudjon hozzáférni.

mysql_config --libs

Valami ilyennek kell megjelennie:

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

Ha ellenőrzi, hogy a könyvtár nincs-e telepítve, akkor a következő paranccsal telepítjük:

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

Mivel ellenőrizzük és telepítjük a MySQL és C közötti kapcsolat szükségességét, folytatjuk az adatbázis létrehozását:

CREATE DATABASE teszt; USE teszt; CREATE TABLE data (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, név 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);

Programozás és összeállítás

Folytatjuk a kód létrehozását:

Lekérdezés.c

/ * könyvtárak a * / # használatához / * könyvtár, amely lehetővé teszi számunkra a kapcsolatok és lekérdezések felhasználását a MySQL * / #include segítségével / * A printf stb. Használatához * / int main () {MYSQL * conn; / * kapcsolati változó a MySQL számára * / MYSQL_RES * res; / * változó, amely a * / MYSQL_ROW sor eredményét tartalmazza; / * változó, amely minden egyes megkeresett rekord mezejét tartalmazza * / char * server = "localhost"; / * kiszolgáló címe 127.0.0.1, localhost vagy ip cím * / char * user = "root"; / * felhasználó az adatbázis lekérdezéséhez * / char * password = "root"; / * jelszó a szóban forgó felhasználó számára * / char * database = "test"; / * a lekérdezendő adatbázis neve * / conn = mysql_init (NULL); / * inicializálás a kapcsolat nullázására fprintf (stderr, "% s \ n", mysql_error (conn)); / * ha hiba van, határozza meg, hogy melyik hiba volt * / exit (0); } / * SQL lekérdezés küldése * / if (mysql_query (conn, "select * az adatokból")) {/ * a lekérdezés meghatározása és a kapcsolat eredete conn)); kijárat (0); } res = mysql_use_result (csatlakozás);
	printf("ID \ tNév \ t \ életkor \ n"); míg (((sor = mysql_fetch_row (res))! = NULL) / * végighúzza a res változót az összes használatra kapott rekorddal * /
		printf("% s \ t% s \ t% s \ n", [0] sor, [1] sor, [2] sor); / * a sorváltozó tömb lesz a táblák mezőinek számáról * / / * a res változó felszabadul és a kapcsolat lezárul * / mysql_free_result (res); mysql_close (conn); }

Összeállítjuk:

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

Igazolás

Végrehajtjuk:

./Lekérdezés

forrás: Hugo4295 blogja


7 hozzászólás, hagyd a tiedet

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   koratsuki dijo

    Jó, hogy a konzolon lévő szkriptek és oktatóanyagok arzenáljára mentem! +1 partnernek ...

  2.   Rodrigo dijo

    Helló, sok gratulálok mindenhez, ami a weben található ezzel a kérdéssel kapcsolatban. A tiéd volt a legközelebb a megoldáshoz. csak egy kis kétség, miért nem kapom meg a futtatható fájlt ??

    a comílar idején nem jelez hibát, de nem generálja a ./ser4 fájlt

  3.   Andrélo dijo

    Van ötlet, hogyan lehet ezt megtenni a Fedorában?

  4.   Victor de la o dijo

    Nem értek egyet az információk megosztásával, de ha a szerzői jogok nincsenek feltüntetve, mivel ezt a példát én készítettem 2011 óta, és itt van az eredeti forrás címe

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

    1.    élénk dijo

      Nem baj, Victor, de ha észreveszed, nem a webhelyedről vettem át a cikket, hanem egy másik oldalra, ahol sajnos nem a forrást tették. Azonban most szerkesztem a cikket .. 😉

  5.   Alfonso Ovidio López Morales dijo

    kiváló tudásmegosztás nagy szabadság

  6.   DANIELA FERNANDEZ dijo

    És hogyan lehet beillesztéseket tenni ???