Mir-knigi.online
Книги онлайн читать бесплатно!
  • Главная
  • Жанры
  • ТОП книг
  • ТОП авторов
  • Контакты

Основы программирования в Linux

Часть 147 из 324 Информация о книге

Успешный вызов возвращает ноль. Поскольку эта подпрограмма предназначена для установки флагов, аварийное завершение всегда означает использование неверного параметра.

Для задания времени ожидания, равного семи секундам, используйте следующий фрагмент программного кода:

unsigned int timeout = 7;

...

connection = mysql_init(NULL);

ret = mysql_options(connection, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&timeout);

if (ret) {

 /* Обработка ошибки */

 ...

}

connection = mysql_real_connect(connection ...)

Теперь, когда вы научились устанавливать, и закрывать ваше подключение, попробуем с помощью короткой программы проверить полученные знания на практике.

Начните с задания нового пароля для пользователя (в приведенном далее коде

rick
на
localhost
) и затем создайте базу данных
foo
, к которой будете подключаться. Вы все это уже знаете, поэтому мы просто приводим последовательность действий:

$ <b>mysql -u root -р</b>

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

mysql&gt; <b>GRANT ALL ON *.* TO [email protected] IDENTIFIED BY 'secret';</b>

Query OK, 0 rows affected (0.01 sec)

mysql&gt; <b>\q</b>

Bye

$ <b>mysql -u rick -p</b>

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

mysql&gt; <b>CREATE DATABASE foo;</b>

Query OK, 1 row affected (0.01 sec)

mysql&gt; <b>\q</b>

Вы создали новую базу данных. Вместо ввода подробностей создания таблицы и вставки команд непосредственно в командную строку монитора mysql, что сопряжено с ошибками и не слишком продуктивно при необходимости повторного ввода, вы создадите файл со всеми нужными вам командами.

Далее приведен файл create_children.sql:

--

-- Create the table children

--

CREATE TABLE children (

 childno int(11) NOT NULL auto_increment,

 fname varchar(30),

 age int(11),

 PRIMARY KEY (childno)

);

--

--Populate the table 'children'

--

INSERT INTO children(childno, fname, age) VALUES (1,'Jenny',21);

INSERT INTO children(childno, fname, age) VALUES (2,'Andrew',17);

INSERT INTO children(childno, fname, age) VALUES (3,'Gavin',8);

INSERT INTO children(childno, fname, age) VALUES (4,'Duncan', 6);

INSERT INTO children(childno, fname, age) VALUES (5,'Emma',4);

INSERT INTO children(childno, fname, age) VALUES (6,'Alex',15);

INSERT INTO children(childno, fname, age) VALUES (7,'Adrian',9);

Теперь вы можете снова зарегистрироваться в MySQL, выбрав базу данных foo, и выполнить данный файл. Для краткости и как пример для включения при желании в сценарий мы поместили пароль в командную строку:

$ <b>mysql -u rick --password=secret foo</b>

Welcome to the MySQL monitor. Commands end with ; or \g.

mysql&gt; <b>\. create_children.sql</b>

Query OK, 0 rows affected (0.01 sec)

Query OK, 1 row affected (0.00 sec)

Мы убрали из вывода множество дублирующихся строк, например, строки, созданные в базе данных. Теперь, имея пользователя, базу данных и таблицу с хранящимися данными, самое время посмотреть, как обращаться к данным из программы.

Далее приведен файл connect1.с, который подключается от имени пользователя rick с паролем

secret
к серверу на локальной машине и базе данных
foo
.

#include &lt;stdlib.h&gt;

#include &lt;stdio.h&gt;

#include &quot;mysql.h&quot;

int main(int argc, char *argv[]) {

 MYSQL *conn_ptr;

 conn_ptr = mysqlinit(NULL);

 if (!conn_ptr) {

  fprintf(stderr, &quot;mysql_init failed\n&quot;);

  return EXIT_FAILURE;

 }

 conn_ptr = mysql_real_connect(conn_ptr, &quot;localhost&quot;, &quot;rick&quot;, &quot;secret&quot;,

  &quot;foo&quot;, 0, NULL, 0);

 if (conn_ptr) {

  printf(&quot;Connection success\n&quot;);

 } else {

  printf (&quot;Connection failed\n&quot;);

 }

 mysql_close(conn_ptr);

 return EXIT_SUCCESS;

}

Теперь откомпилируйте программу и посмотрите, как вы это сделали. Возможно, придется вставить путь к файлам

include
и путь к библиотекам, а также указать, что файл нуждается в компоновке с библиотечным модулем
mysqlclient
. В некоторых системах может понадобиться опция
-lz
для компоновки с библиотекой упаковки (compression library). В системе авторов требуемая строка компиляции выглядит следующим образом:

$ <b>gcc -I/usr/include/mysql connect1.с -L/usr/lib/mysql -lmysqlclient -о connect1</b>

Вам, возможно, придется проверить, установлены ли пакеты клиентской части и место их установки, зависящее от применяемого вами дистрибутива, и откорректировать, соответственно, приведенную строку компиляции.


Перейти к странице:
Предыдущая страница
Следующая страница
Жанры
  • Военное дело
  • Деловая литература
  • Детективы и триллеры
  • Детские
  • Детские книги
  • Документальная литература
  • Дом и дача
  • Дом и Семья
  • Жанр не определен
  • Зарубежная литература
  • Знания и навыки
  • История
  • Компьютеры и Интернет
  • Легкое чтение
  • Любовные романы
  • Научно-образовательная
  • Образование
  • Поэзия и драматургия
  • Приключения
  • Проза
  • Прочее
  • Психология и мотивация
  • Публицистика и периодические издания
  • Религия и духовность
  • Родителям
  • Серьезное чтение
  • Спорт, здоровье и красота
  • Справочная литература
  • Старинная литература
  • Техника
  • Фантастика и фентези
  • Фольклор
  • Хобби и досуг
  • Юмор
Mir-knigi.online

Бесплатная онлайн библиотека для чтения книг без регистрации с телефона или компьютера. У нас собраны последние новинки, мировые бестселлеры книжного мира.

Контакты
  • [email protected]
Информация
  • Карта сайта
© mir-knigi.online, 2026. | Вход