// Заголовочные файлы
#include <my_global.h>
#include <mysql.h>
// Вспомогательная функция для вывода ошибок
void puterror(char *);
// Главная функция программы1
int main(int argc, char *argv[])
{
// Дескриптор соединения
MYSQL conn;
// Дескриптор результирующей таблицы
MYSQL_RES *res;
// Дескриптор строки
MYSQL_ROW row;
// Получаем дескриптор соединения
if(!mysql_init(&conn))
puterror("Error: can't create MySQL-descriptor\n");
// Устанавливаем соединение с базой данных
if(!mysql_real_connect(&conn,
"localhost",
"root",
"",
"shop",
0,
NULL,
0))
puterror("Error: can't connect to MySQL server\n");
// Устанавливаем кодировку соединения, чтобы предотвратить
// искажения русского текста
if(mysql_query(&conn, "SET NAMES 'utf8'") != 0)
puterror("Error: can't set character set\n");
// Выполняем SQL-запрос
if(mysql_query(&conn, "SELECT * FROM catalogs") != 0)
puterror("Error: can't execute SQL-query\n");
// Получаем дескриптор результирующей таблицы
res = mysql_store_result(&conn);
if(res == NULL) puterror("Error: can't get the result description\n");
// Если имеется хотя бы одна запись - выводим
// список каталогов
if(mysql_num_rows(res) > 0)
{
// В цикле перебираем все записи
// результирующей таблицы
while((row = mysql_fetch_row(res)) != NULL)
{
// Выводим результат в стандартный поток
fprintf(stdout, "%s\n", row[1]);
}
}
// Освобождаем память, занятую результирующей таблицей
mysql_free_result(res);
// Закрываем соединение с сервером базы данных
mysql_close(&conn);
}
void puterror(char * str)
{
fprintf(stderr, str);
exit(1);
} |