ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Все о MySQL. Выполнение запроса


28-12-2009

После того как установлено соединение и выбрана рабочая база данных, следующий шаг состоит в ее использовании для выполнения запроса (ов). Предназначенная для этих целей функция 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() (она описана в разделе "Обработка ошибок"). Если ошибка не обнаружена, обработка ре­зультирующего набора продолжается.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Управление соединением Все о MySQL. Обработка результирующего набора