Вход/Регистрация
Основы программирования в Linux
вернуться

Мэтью Нейл

Шрифт:

Доступ к данным MySQL из программ на С

Теперь, когда основы СУРБД MySQL остались в стороне, давайте рассмотрим, как, не применяя графические средства или программу-клиент mysql, получить доступ к СУРБД MySQL из вашего приложения.

К MySQL можно получить доступ из программ на разных языках, включая следующие:

С;

Eiffel;

С++;

Tcl;

Java;

Ruby;

Perl;

Python;

PHP.

Есть и драйвер ODBC для доступа к MySQL из приложений ОС Windows, таких как Access. Существует даже драйвер ODBC для ОС Linux, но в его применении мало смысла.

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

Подпрограммы подключения

Подключение к базе данных MySQL из программы на языке С состоит из двух шагов:

 инициализации структуры идентификации подключения или дескриптора подключения;

 выполнения физического подключения.

Сначала примените

mysql_init
для инициализации дескриптора вашего подключения:

#include <mysql.h>

MYSQL *mysql_init(MYSQL*);

Обычно в подпрограмму передается

NULL
и возвращается указатель на вновь выделяемую память для структуры дескриптора подключения. Если вы пересылаете указатель на существующую структуру, она инициализируется заново. В случае ошибки возвращается
NULL
.

К этому моменту вы просто выделили память и инициализировали структуру дескриптора. Но вы еще должны предложить параметры подключения с помощью подпрограммы

mysql_real_connect
:

MYSQL *mysql_real_connect(MYSQL *connection,

 const char *server host, const char *sql_user_name,

 const char *sql_password, const char *db_name,

 unsigned int port_number, const char *unix_socket_name,

 unsigned int flags);

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

mysql_init
. Параметры в большинстве своем очевидны; но следует отметить, что
server_host
может задаваться именем компьютера или IP-адресом. При подключении только к локальной машине вы можете оптимизировать тип подключения, указав в качестве этого параметра
localhost
.

Параметры

sql_user_name
и
sql_password
соответствуют своим именам. Если регистрационное имя равно
NULL
, предполагается идентификатор текущего пользователя ОС Linux. Если пароль —
NULL
, вы сможете обратиться к данным только на том сервере, который доступен без пароля. Перед отправкой по сети пароль шифруется.

Параметры

port_number
и
unix_socket_name
должны быть равны 0 и
NULL
соответственно, если вы не меняли стандартных настроек в вашей установке MySQL. Эти параметры примут соответствующие значения по умолчанию.

И наконец, параметр

flags
позволяет с помощью операции
OR
объединить несколько определений битовых масок, изменяя тем самым определенные характеристики применяемого протокола. Ни один из этих флагов не важен в данной вводной главе; все они подробно описаны в руководстве.

Если подключиться невозможно, возвращается

NULL
. В этом случае полезную информацию может предоставить подпрограмма
mysql_error
.

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

mysql_close
, как показано далее:

void mysql_close(MYSQL * connection);

Эта подпрограмма разорвет соединение с сервером. Если подключение устанавливалось с помощью

mysql_init
, память, отведенная под структуру дескриптора, освободится. Указатель станет неопределенным, и его нельзя будет применять в дальнейшем. Открытое ненужное подключение означает расточительное использование ресурсов, но повторное открытие подключения сопряжено с дополнительными накладными расходами, поэтому решайте сами, когда применять описанные подпрограммы.

  • Читать дальше
  • 1
  • ...
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: