После того как установлено соединение и выбрана рабочая база данных, следующий шаг состоит в ее использовании для выполнения запроса (ов). Предназначенная для этих целей функция API-интерфейса называется mysql_query(). Она принимает два аргумента: дескриптор соединения, возвращенный функцией mysql_real_connect() , и сам выполняемый запрос. 
Листинг 19.10.
/* выполнить запрос и получить результирующий набор */ mysql_query(&mysql, "SELECT * FROM employees");
В предыдущем примере используется запрос SELECT, но подобным образом, с функцией mysql_query() , можно задать команду INSERT, UPDATE или DELETE.
Листинг 19.11.
/* выполнить запрос и получить результирующий набор */ mysql_query(&mysql, "DELETE FROM employees WHERE user = 'john'");
Функция mysql_query() возвращает значение, равное нулю, если запрос выполнен успешно, и значение, отличное от нуля, - в обратном случае. Поэтому с точки зрения об­работки исключительных ситуаций проверка этих значений перед продолжением выполнения алгоритма имеет существенное значение. Об этом свидетельствует и следующий фрагмент.
Листинг 19.12.
/* проверка выполнения запроса */
if (mysql_query,(&mysql "SELECT title, author FROM books") != 0)
{
fprintf (stderr, "Ошибка в запросе^"); exit();
}
Ниже представлен предыдущий пример в несколько доработанном виде с целью про­демонстрировать как работает запуск запроса и возвращение диагностического сообщения, отражающего степень успешности выполнения этого запроса.
Листинг 19.13.
#include <stdio.h> #include <mysql.h> int main()
{
/* объявление структуры MYSQL */ MYSQL mysql; MYSQL_RES *result;
/* инициализация структуры MYSQL */
mysql_init(&mysql);
/* подключение к базе данных */
if (!(mysql_real_connect(&mysql, "localhost", "john", "doe",
"db1", 0, NULL, 0)))
{
fprintf(stderr, " Ошибка в соединении: %sn"); exit ();
}
/* выполнение запроса */
if (mysql_query(&mysql, "SELECT title, author FROM books") != 0;
{
fprintf(stdout, "Ошибка в запросе^");
}
else
{
fprintf(stdout, "Запрос выполнен успешно^");
}
/* очистка */ mysql_close(&mysql);

 } 
Поскольку строка запроса содержит ошибку, функция mysql_query() не возвращает значение 0, о чем будет выведено соответствующее диагностическое сообщение. Для получения более четких сообщений можно воспользоваться функцией mysql_error() (она описана в разделе "Обработка ошибок"). Если ошибка не обнаружена, обработка ре­зультирующего набора продолжается.