Определяем количество записей 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, он должен только дать Вам представление о типичном виде
программы-клиента.