Přístup k MySQL pomocí C

S tímto tutoriálem představuji komunitě, jak přistupovat k databázi MySQL z programovacího jazyka C a bez použití příliš mnoha závislostí, pouze s

libmysqlclient

Doufám, že to bude užitečné pro ty, kteří potřebovali tento typ dokumentace, a tak i nadále přispívat ke komunitě SL a pomáhat těm, kteří nemají INTERNET.

konfigurace

Nejprve musíme zkontrolovat, zda máme nainstalované knihovny návrhů *-dev mít přístup z C / C ++ do MySQL.

mysql_config --libs

Měl by vypadat asi takto:

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

V případě, že zkontrolujete, že knihovna není nainstalována, nainstalujeme ji pomocí následujícího příkazu:

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

Protože jsme ověřili a nainstalovali, co potřebujeme pro propojení mezi MySQL a C, přistoupíme k vytvoření databáze:

VYTVOŘIT test DATABÁZE; POUŽITÍ test; CREATE TABLE data (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, name 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);

Programování a kompilace

Pokračujeme ve vytváření kódu:

Dotaz.c

/ * knihovny použijeme * / #include / * knihovna, která nám umožňuje využívat připojení a dotazy s MySQL * / #include / * Chcete-li použít printf atd. * / int main () {MYSQL * conn; / * proměnná připojení pro MySQL * / MYSQL_RES * res; / * proměnná, která bude obsahovat výsledek dotazu * / MYSQL_ROW řádek; / * proměnná, která bude obsahovat pole pro každý konzultovaný záznam * / char * server = "localhost"; / * adresa serveru 127.0.0.1, localhost nebo IP adresa * / char * user = "root"; / * uživatel pro dotazování na databázi * / char * heslo = "root"; / * heslo pro dotyčného uživatele * / char * databáze = "test"; / * název databáze k dotazu * / conn = mysql_init (NULL); / * inicializace pro zrušení připojení * / / * připojení k databázi * / if (! mysql_real_connect (conn, server, uživatel, heslo, databáze, 0, NULL, 0)) {/ * definujte parametry připojení dříve nastaveno * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * pokud existuje chyba, definujte, která chyba byla * / exit (1); } / * odeslat dotaz SQL * / if (mysql_query (conn, "select * from data")) {/ * definice dotazu a původ spojení * / fprintf (stderr, "% s \ n", mysql_error ( conn)); výstup (1); } res = mysql_use_result (conn);
	printf("ID \ tName \ t \ age \ n"); while ((řádek = mysql_fetch_row (res))! = NULL) / * smyčka přes proměnnou res se všemi záznamy získanými pro použití * /
		printf("% s \ t% s \ t% s \ n", řádek [0], řádek [1], řádek [2]); / * z proměnné řádku se stane pole podle počtu polí v tabulce * / / * uvolní se proměnná res a spojení se uzavře * / mysql_free_result (res); mysql_close (conn); }

Sestavujeme s:

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

Ověření

Provádíme:

./Dotaz

zdroj: Blog uživatele Hugo4295


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   koratsuki řekl

    Dobře, uloženo v mém arzenálu skriptů a výukových programů na konzole! +1 pro vašeho partnera ...

  2.   Rodrigo řekl

    Dobrý den, mnoho gratulujeme ke všemu, co je na webu ohledně tohoto problému, vaše řešení bylo nejblíže k řešení. jen malá pochybnost, proč nezískám spustitelný soubor ??

    v době comilar neoznačuje žádnou chybu, ale negeneruje ./ser4

  3.   Andrélo řekl

    Nějaký nápad, jak to udělat ve Fedoře?

  4.   Victor de la o řekl

    Nesouhlasím se sdílením informací, ale pokud nejsou umístěna autorská práva, protože tento příklad jsem vytvořil já od roku 2011 a zde je adresa původního zdroje

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

    1.    živý řekl

      Žádný problém, Victore, ale pokud si všimnete, nevzal jsem si článek z vašeho webu, ale z jiného, ​​kde bohužel nezadali zdroj. Právě teď však článek upravuji .. 😉

  5.   Alfonso Ovidio López Morales řekl

    vynikající sdílení znalostí, velká svoboda

  6.   DANIELA FERNANDEZOVÁ řekl

    A jak lze vkládat ???