Доступ до MySQL за допомогою C

За допомогою цього підручника я представляю спільноті, як отримати доступ до бази даних MySQL з мови програмування C і не використовуючи занадто багато залежностей, просто

libmysqlclient

Я сподіваюся, це буде корисно для тих, хто потребував такого роду документації, і таким чином продовжуватиме робити внесок у співтовариство з питань SL та допомагати тим, хто не має ІНТЕРНЕТ.

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

Спочатку ми повинні перевірити, чи встановлені бібліотеки дизайну *-dev мати доступ до C / C ++ до MySQL.

mysql_config --libs

Це повинно виглядати приблизно так:

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

Якщо ви переконаєтесь, що бібліотека не встановлена, ми встановлюємо її наступною командою:

sudo apt-get install 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), age 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, локальний хост або ip-адреса * / char * user = "root"; / * користувач запитує базу даних * / char * password = "root"; / * пароль для відповідного користувача * / char * database = "test"; / * ім'я бази даних для запиту * / 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 ( зв’язок)); вихід (1); } res = mysql_use_result (conn);
	printf("ID \ tName \ t \ age \ n"); while ((row = mysql_fetch_row (res))! = NULL) / * цикл через змінну res з усіма записами, отриманими для використання * /
		printf("% 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

Фуенте: Блог 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.   ДАНІЄЛА ФЕРНАНДЕЗ - сказав він

    А як можна робити вставки ???