Определяем количество записей mysql: пример кода

Клиентские функции

MySQL API использует структуры данных MYSQL (определены в mysql.h)
чтобы установить связь с СУБД. Вы можете устанавливать много соединений из
одной программы-клиента, однако, каждое соединений должно быть связано с
собственной отдельной структурой MYSQL.

После успешного запроса, если данные должны быть возвращены пользователю,
набор результатов должен быть передан через функции mysql_use_result
или через функцию mysql_store_result. Обе эти функции сохраняют
набор результатов в структуре MYSQL_RES. Разница в том, что
mysql_store_result передает весь набор результатов в память клиента,
а mysql_use_result инструктирует клиента, чтобы он мог получить
строку динамически с сервера с каждым обращением к mysql_fetch_row

Имейте в
виду, что mysql_use_result занимает ресурсы сервера, и не должен
использоваться для интерактивных прикладных программ, где действия
пользователя часто непредсказуемы и могут привести к большим задержкам.
Обратите внимание также, что Вы можете держать только одно соединение,
которое использует mysql_user_result, открытым, и это должно быть
последнее созданное соединение. По умолчанию процесс mysqld закроет
соединение после тридцати секунд неактивности

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

Подготовка

Вы должны подключить файл mysql.h в начале Вашей программы на C:

#include "mysql.h"

Вы также должны компоновать программу с математической (для шифрования) и
mysqlclient библиотеками:

$ cc -I/usr/include/mysql -L/usr/lib/mysql myapp.c -o myapp
-lm -lmysqlclient

Включаемые файлы обычно размещены в /usr/include/mysql, а библиотеки могут
быть найдены в /usr/lib/mysql.

Если Вы имеете утечку памяти в вашей программе-клиенте, Вы можете
компилировать с опцией --with-debug=yes. Это заставит код клиента
использовать пакет ‘safe_malloc’ в библиотеке клиентов MySQL. Вызовите
TERMINATE(stdout) или my_end(1) в вашей прикладной программе-клиенте перед
выходом, чтобы получить список всех утечек памяти. Детали — в файле
mysys/safemalloc.c из дистрибутива MySQL.

Рассмотрим простой пример MySQL-клиента, который только выполнит SELECT
и выведет все возвращенные строки в STDOUT. В нем использованы далеко не все
функции С API, он должен только дать Вам представление о типичном виде
программы-клиента.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *