Достъп до MySQL с помощта на C

С този урок представям на общността как да осъществя достъп до база данни MySQL от езика за програмиране C и без да използвам твърде много зависимости, само с

libmysqlclient

Надявам се, че ще бъде полезно за тези, които са се нуждаели от този тип документация и по този начин ще продължат да допринасят за общността на SL и да помагат на тези, които нямат INTERNET.

конфигурация

Първо трябва да проверим дали имаме инсталирани библиотеки за проектиране *-dev да има достъп до C / C ++ до MySQL.

mysql_config --libs

Трябва да изглежда нещо подобно:

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

В случай, че проверите дали библиотеката не е инсталирана, ние я инсталираме със следната команда:

sudo apt-get инсталиране libmysqlclient-dev mysql_config --cflags -I / usr / include / mysql -DBIG_JOINS = 1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX

Тъй като проверяваме и инсталираме това, което ни е необходимо за връзката между MySQL и C, пристъпваме към създаването на базата данни:

СЪЗДАЙТЕ тест за база данни; USE тест; СЪЗДАВАНЕ НА ТАБЛИЦА данни (id int AUTO_INCREMENT NOT NULL PRIMARY KEY, име varchar (40), възраст int); ВЪВЕЖДАНЕ В СТОЙНОСТИ за данни (NULL, 'Alma Hernandez', 28), (NULL, 'Jose Sanchez', 39), (NULL, 'Martin loera', 25), (NULL, 'Leonardo Cortez', 26), (NULL , „Густаво Ромеро“, 25);

Програмиране и компилация

Продължаваме да създаваме кода:

Запитване.c

/ * библиотеки за използване * / #include / * библиотека, която ни позволява да използваме връзки и заявки с MySQL * / #include / * За да се използва printf и др. * / int main () {MYSQL * conn; / * променлива на връзката за MySQL * / MYSQL_RES * res; / * променлива, която ще съдържа резултата от заявката * / MYSQL_ROW ред; / * променлива, която ще съдържа полетата за всеки записан запис * / char * server = "localhost"; / * адрес на сървъра 127.0.0.1, localhost или ip адрес * / char * user = "root"; / * потребител за запитване към базата данни * / char * password = "root"; / * парола за въпросния потребител * / char * база данни = "тест"; / * име на базата данни за заявка * / conn = mysql_init (NULL); / * инициализация за нулиране на връзката * / / * свързване към базата данни * / if (! mysql_real_connect (conn, сървър, потребител, парола, база данни, 0, NULL, 0)) {/ * дефинирайте параметрите на връзката предварително зададен * / fprintf (stderr, "% s \ n", mysql_error (conn)); / * ако има грешка, дефинирайте коя грешка е * / exit (1); } / * изпращане на SQL заявка * / if (mysql_query (conn, "select * from data")) {/ * дефиниция на заявката и произхода на връзката * / fprintf (stderr, "% s \ n", mysql_error ( conn)); изход (1); } res = mysql_use_result (conn);
	ФОРМАТ("ID \ tName \ t \ age \ n"); while ((row = mysql_fetch_row (res))! = NULL) / * цикъл през променливата res с всички записи, получени за използване * /
		ФОРМАТ("% s \ t% s \ t% s \ n", ред [0], ред [1], ред [2]); / * редовата променлива се превръща в масив за броя на полетата в таблицата * / / * променливата res се освобождава и връзката се затваря * / mysql_free_result (res); mysql_close (conn); }

Ние компилираме с:

gcc -o Заявка $ (mysql_config --cflags) Query.c $ (mysql_config -–libs)

Проверка

Изпълняваме:

./Query

Fuente: Блогът на Hugo4295


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Корацуки каза той

    Добре, че запазено в моя арсенал от скриптове и уроци на конзолата! +1 за вашия партньор ...

  2.   Родриго каза той

    Здравейте, много поздравления за всичко, което е в мрежата по този въпрос, вашият беше най-близо до решението. само малко съмнение, защо не получа изпълнителната програма ??

    по време на comílar не отбелязва никаква грешка, но не генерира ./ser4

  3.   Андрело каза той

    Някаква идея как да го направя във Fedora?

  4.   Виктор де ла о каза той

    Не съм съгласен с споделянето на информацията, но ако авторските права не са поставени, тъй като този пример е направен от мен от 2011 г. и тук е адресът на оригиналния източник

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

    1.    елав каза той

      Няма проблем Виктор, но ако забележите, че не съм взел статията от вашия сайт, а от друг, където за съжаление не са поставили източника. В момента обаче редактирам статията .. 😉

  5.   Алфонсо Овидио Лопес Моралес каза той

    отлично споделяне на знания голяма свобода

  6.   ДАНИЕЛА ФЕРНАНДЕЗ каза той

    И как могат да се правят вмъквания ???